本文共 2392 字,大约阅读时间需要 7 分钟。
集合框架:由集合和对集合操作的工具类组成
1、集合的基本认识:一个用来保存对个对象数据的容器,与数组类似,但本质不同。
在java中我们多用对象用于封装特有数据,那么对象多了也需要存储,虽然数据可以存储多个对象,但数组的长度是不能变化在,我们并不知道需要存储的对个数,这时就需要使用集合来进行存储
3、集合的特点:
1)集合其本身也是一个对象
2)用于存储对象的容器;即集合中存储的元素是对象
3)集合是不可以存储基本数据类型的;(集合存储基本数据类型时会先进行自动封装成其对应的对象后再进行存储)
4)集合的长度是可变的;
4、集合框架体系: 集合是用于存储对象的容器。而每种容器内部都有其独特的数据结构,正因为不同的容器内部数据结构不同,使其各自有自己独特的使用场景。虽然每个 容器有其独特的结构但是类似的容器还是存在共性的(至少对容器内部对象的操作方法上是存在共性的),所以这些共性方法能被不断抽取,最终形成了集合框架体系。
5、集合框架的顶层接口(根接口):Collection
Collection的常见方法:
//Collection是一个接口,因此它不能直接实例化对象,这里我们通过多态的形式来创建对象,它的存储特性由实现类来决定Collectioncollection = new ArrayList<>();
(1)添加
boolean add(E o);
//add方法:用于将单个参数对象保存到集合中collection.add("李雷");collection.add("韩梅梅");
boolean addAll(Collection<? extends E> c);
//addAll方法:用于将参数集合中的所有数据保存到当前集合中collection.addAll(Arrays.asList("露西","莉莉"));
(2)删除
boolean remove(Object o);
//remove方法:用于将参数对象从集合中移除collection.remove("李雷");
boolean removeAll(Collection<? extends E> c)
//removeAll方法:用于移除当前集合中与参数集合相同的元素collection.removeAll(Arrays.asList("露西","莉莉"));
boolean retainAll(Collection<?> c);
//removeAll方法:用于移除当前集合中与参数集合不同的元素collection.retainAll(Arrays.asList("露西","莉莉"));
void clear();
//clear方法:用于移除集合中保存的所有数据colletion.clear();
(3)判断
boolean isEmpty();
//isEmpty方法: 用于判断集合中是否保存了元素collection.isEmpry();
boolean contains(Object o);
// contains方法用来判断集合中是否保存了与参数相同的元素collection.contains("李雷");
boolean containsAll(Collection<?> c);
//containsAll方法:用于判断当前集合中是否包含了参数集合中的所有元素collection.containsAll(Arrays.asList("露西","莉莉"));
4)获取
int size();
//size方法:用于获取集合中保存的元素对象个数int size = collection.size();
Iterator<E> iterator();
//iterator方法:用于获取集合中的迭代器Iterator iterator = collection.iterator();
(5)其他
将集合中元素转为数组:
Ojbect[] toArray();
//将集合转为数组String[] strs = collection.toArray();
6.集合中保存了多个元素对象,我们需要将多个对象从集合中获取出来,就需要循环获取集合中的每一个元素,一般可以通过循环遍历获取
因为Collection集合是通过多态来创建的,因此屏蔽了有序与无序的区别,从而Collection集合中是不能向数组那样使用下标遍历获取,当然在Collection的实现类中,有的是有下标的
1)可以通过增强for循环for each遍历(不需要下标)
for(Object obj : collection){//集合中的元素都是对象 System.out.println(obj);}
2) 在每一个集合中都存在迭代器,因此也可以通过迭代器来遍历
迭代器方法: hasNext()、next()
for(Iterator iter = collection.iterator(); iter.hasNext();) {//hasNext用来判断是否存在下一个元素 System.out.println(iter.next());//next用于获取迭代器对应的下一元素}
因为Collection的一个高度抽象的集合接口,因此它里面所提供的方法和操作方式在Collection体系中都可以使用,它的2大体系List和Set都会以不同的方式来实现这些方法,从而使他们的存储特点不同,在后期的开发过程中多数也是使用List和Set来实现集合。
转载于:https://blog.51cto.com/13477015/2335632