存储一个班学员信息,假定一个班容纳20名学员,可创建一个长度为20的数组存储信息,当添加一名新学员时,由于数组长度固定不变,只能重新创建新的数组,数组长度为原数组长度加一。如果为了预防以后新学员的加入,直接建立一个大容量的数组,虽然可行但是容易浪费资源,如果并不知道程序运行时会需要多少对象,或者需要 更复杂方式存储对象——可以使用Java集合框架。
Java集合框架包含的内容Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中
接口:Collection 接口存储一组 不唯一,无序的对象
List 接口存储一组不唯一,有序(插入顺序)的对象
Set 接口存储一组唯一,无序的对象
Map接口存储一组键值对象,提供key到value的映射
具体类:ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高、LinkedList采用链表存储方式,插入、删除元素时效率比较高、
HashSet、TreeSet、HashMap、TreeMap
算法:Collections 提供了对集合进行排序、遍历等多种算法实现
ArrayList常用方法| 方法名 | 说明 |
| boolean add(Object o) | 在列表的末尾顺序添加元素,起始索引位置从0开始 |
| void add(int index,Object o) | 在指定的索引位置添加元素。索引位置必须介于0和列表中元素个数之间 |
| int size() | 返回列表中的元素个数 |
| Object get(int index) | 返回指定索引位置处的元素。取出的元素是Object类型,使用前需要进行强制类型转换 |
| boolean contains(Object o) | 判断列表中是否存在指定元素 |
| boolean remove(Object o) | 从列表中删除元素 |
| Object remove(int index) | 从列表中删除指定位置元素,起始索引位置从0开始 |
Collection接口常用通用方法还有:clear()、isEmpty()、iterator()、toArray()
LinkedList集合类LinkedList类是List接口的一个具体实现类
LinkedList 类用于创建链表数据结构
插入或者删除元素时,它提供更好的性能
LinkedList常用方法| 方法名 | 说明 |
| void addFirst(Object o) | 在列表的首部添加元素 |
| void addLast(Object o) | 在列表的末尾添加元素 |
| Object getFirst() | 返回列表中的第一个元素 |
| Object getLast() | 返回列表中的最后一个元素 |
| Object removeFirst() | 删除并返回列表中的第一个元素 |
| Object removeLast() | 删除并返回列表中的最后一个元素 |
Set接口存储一组唯一,无序的对象
HashSet是Set接口常用的实现类
Set中存放对象的引用
Set set=new HashSet();
String s1=new String("java");
String s2=s1;
String s3=new String("JAVA");
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());
Set接口如何判断加入对象是否已经存在呢?
采用对象的equals()方法比较两个对象是否相等
Set set=new HashSet();
String s1=new String("java");
String s2=s1;
String s3=new String ("java");
set.add(s1);
set.add(s2);
set.add(s3);
System.out.println(set.size());
HashSet是Set接口常用的实现类
Set newsTitleSet = new HashSet();
NewTitle car = new NewTitle(1, "汽车", "管理员");
//增加元素
newsTitleSet.add(car);
//获取元素个数
System.out.println("新闻标题数目为:" + newsTitleList.size() + "条");
Set接口不存在get()方法
如何遍历Set集合呢?方法1:通过迭代器Iterator实现遍历
获取Iterator :Collection 接口的iterator()方法
Iterator的方法
boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素
方法2:增强型for循环



