一、概念:
对象的容器,实现对对象常规的一些操作,类似数组的功能。
二、和数组的区别:
1、长度不定,数组长度一定。
2、数组可以存储基本数据类型,集合可以存储引用数据类型。
Collection父接口
Collection方法 | |
---|---|
add() | 添加一个元素 |
addAll() | 将一个集合中的所有对象添加到此集合中 |
clear() | 清空此集合中所有对象 |
size() | 返回此集合中的元素个数 |
toArray | 将此集合转换为数组 |
contains(Object a) | 检查此集合中是否包含a对象 |
equals(Object a) | 比较此集合是否与指定对象相等 |
isEmpty() | 判断此集合是否为空 |
remove(Object a) | 在此集合中移除a对象 |
removeAll(Collection< a> x) | 在此集合中移除集合a中也包含的对象(取补集) |
retainAll(Collection< b> x) | 在此集合中保留集合b中也包含的对象(取交集) |
iterator() | 返回在此集合元素上进行迭代的迭代器 |
… | … |
Collection接口的使用
public static void main(String[] args) {
Collection collection = new ArrayList();
//-添加元素
collection.add("111");
collection.add("你好");
collection.add("aaa");
System.out.println("元素个数"+":"+collection.size());
System.out.println(collection);
//- 删除元素
collection.remove("111");
System.out.println(collection);
System.out.println("删除元素个数"+":"+collection.size());
//- 遍历元素
//1、增强for
for (Object object:collection){
System.out.println(object);
}
//2、迭代器(专门遍历接口的方式)
//hasNext()是否有下个元素
//next()下一个元素
//删除当前元素
Iterator it = collection.iterator();
while (it.hasNext()){
System.out.println(it.next().toString());
//迭代过程中不能使用删除collection.remove删除方法
//使用迭代器的remove()删除方法可以删除
it.remove();
};
//- 判断(如果为空为true)
System.out.println(collection.isEmpty());
}
List接口的使用
- 有序、有下标、元素可以重复
方法 | 与Collection不同的地方 |
---|---|
void add(int index,Object 0) | 可以通过下标方式向list集合中添加一个元素 |
boolean addAll(int index,Collection c) | 将一个集合中的所有对象添加到此集合中 |
Object get(int index) | 通过下标获取集合中指定元素 |
list subList(int fromIdex,int toindex) | 获取指定下标区间的元素 |
listlistIterater () | 列表迭代器 |
**listlistIterater ()
List list = new ArrayList();
//-添加元素
list.add("111");
list.add("你好");
list.add("aaa");
//for循环
for (int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
//增强for
for(Object o:list){
System.out.println(o);
}
//迭代器
Iterator it = list.iterator();
while (it.hasNext()){
System.out.println(it.next().toString());
}
//列表迭代器
ListIterator it1 = list.listIterator();
while (it1.hasPrevious()){//逆向遍历
System.out.println(it1.next().toString());
}
//列表迭代器
ListIterator it2 = list.listIterator(1);//指定下标位置
while (it2.hasPrevious()){//逆向遍历
System.out.println(it1.next().toString());
}
List的实现类
ArrayList
- 内部本身实际采用数组方式存储,查询块、增删慢。