集合框架 笔记

一:概述
1、集合的概念:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象。

2、集合的作用:
A:在类的内部,对数据进行组织;
B:简而快速的搜索查找其中的某一条元素;
C:有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关的元素;
D:有的集合接口, 提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以使任意类型。

3、集合与数组的对比:
A:数组的长度固定, 集合长度可变
B:数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象。

二:体系结构
1、两大根接口:Collection和Map

2、Collection常用的三个子接口:
A:Link(序列,有序可重复,常用)
B:Queue(队列,有序可重复)
C:Set(集,无序不可重复,常用),
以上分别对应的实现类是 ArrayList(数组序列),LinkedList(链表,同时也是Link的实现类), HashSet(哈希集)。

3、Map最常用的子接口:对应的实现类是 HashMap(哈希表)

4、注意:
A:Collection类都是一个对象一个对象的存,Map类都是两个对象一个键值对(Entry类)的存。
B:标红色的都是使用频率最高的实现类。
——
——
第二节:LIst集合
一:List集合与数组的 区别
1、List集合声明时,不需要指定长度,而数组需要指定长度。
2、数组.length返回的是指定的元素个数,而List.size()方法,存入多少元素,就返回多少元素。
3、因为List集合和数组储存方式不一样,List集合访问效率,比数组高。

二:List集合的方法(红色为常用方法)
1、 add(Object o)方法:给List集合中添加元素
add(下标 ,Object o)方法:给List集合中添加元素,但是固定下标存入元素,不能超出现有集合长度。
2、 size()方法:得到集合的大小,返回的是int类型的值
3、 get(int i)方法:获取元素,返回集合中该下标的元素
4、addAll(集合)方法:用于将一个集合中的所有元素,赋值给另一个集合。
5、 remove(下标)方法:删除集合中固定下标元素。
remove(对象)方法:删除集合中固定的元素。
6、contains(对象)方法:判断集合中是否包含该元素,返回boolean值

三:List集合 特点
1、存入元素,是有序的,且元素可以重复。( Set集合中的元素,是不能重复,且无序的)
2、List的两个实现类:如果常需要查询方法等使用ArrayList实现类;频繁使用删除、插入使用LinkedList实现类。( 两者区别在于储存方法不同,所以ArrayList便于查询,LinkedList便于修改)
void addFirst(Object o) 在集合的 首部添加元素(子类特有方法)
void addLast(Object o) 在集合的 末尾添加元素(子类特有方法)
Object getFirst() 返回集合中的 第一个元素
Object getLast() 返回集合中的 最后一个元素
Object removeFirst() 删除并返回集合中的第一个元素
Object removeLast() 删除并返回集合中的最后一个元素
3、List集合,也可以被称作 列表
——
——
第三节:Map集合
一:Map集合的方法
1、Object put(Object key, Object val):以“键-值对”的方式进行存储,而map的Key不能重复,val可以重复
2、Object get (Object key): 根据键返回相关联的值,如果不存在指定的键,返回null
3、Object remove (Object key) 删除由指定的键映射的“键-值对”
4、int size() 返回集合中元素个数
5、Set keySet () 返回键的集合
6、Collection values () 返回值的集合
7、boolean containsKey (Object key) 如果存在由指定的键映射的“键-值对”,返回true
boolean containsValue (Object values) 也可以判断是否包含values
8、clear():清空集合中的元素
9、isEmpty():判断集合中元素是否为空,返回boolean值

二:区别
1、TreeSet与TreeMap有序
2、HashSet与HashMap无序——是通过哈希值判断的
——
——
第四节:泛型
1、作用
A:集合中的元素,可以是任意类型的对象(准确来说,应该是对象的引用)。
B:如果把某个对象放入集合,则会忽略他的类型,而把它当作Object处理
C:泛型则是规定了某个集合只可以存放特定类型及其子类型的对象。
(会在编译期间进行类型检查)
(而且获取集合中元素时,可以直接按指定类型获取元素)

2、泛型语法
A、泛型<>——规定List定义的容器只能存储某种类型的元素。
B、示例:
List<Course> courseToSelect;
this.courseToSelect=new ArrayList<Course>(); //带有泛型-Course的List类型属性创建
C、注意:
1、泛型集合中,不能添加泛型规定的类型以及其子类型以外的对象,否则会报错。
2、泛型集合中,不能使用基本数据类型,只能使用引用数据类型。
3、不过可以通过包装类,限定允许存入基本数据类型。
如:long——就是使用它的Long包装类,int包装类——Integer
List<Long> courseToSelect;

猜你喜欢

转载自blog.csdn.net/yehaotianyhy/article/details/79701601