单列集合 collection(顶级接口)
collectio主要由list类和set类集合组成, 由于每次只存储一个数值,所以被称为单列集合。
由于collection是单列集合的顶级接口,list和set类集合继承了它,可以使用collection中所有
方法。
list集合
list集合的特点:有序,可重复,有索引。
list是接口,他的实现类有arraylist(它的底层是数组),linkedlist(他的底层为双链表)
我们可以通过这俩个实现类去完成一些操作。
list中的数组遍历
1、迭代器遍历
Iterator<String> it=coll.iterator();//迭代器
while (it.hasNext()){
String sr=it.next();
System.out.println(sr);
}
注意:1、迭代器遍历中,是拿指针进行移动,去指向目标,迭代完毕指针不会复位,故只能使用一次.next。
2、遍历时,不能用集合方法进行增加或删除
2、增强for
for (String s:coll){//增强for
System.out.println(s);
增强for的结构为:for(元素数据类型 变量名 :数组或集合)
增强for的底层是迭代器
3、lambda 表达式
Collection<String> coll=new ArrayList<>();
coll.add("aaa");
coll.add("bbb");
coll.add("aa");
coll.forEach(str-> System.out.println(str));
代码简单,底层原理需要专门理解。
下面俩个是list集合特有的遍历方式
4、普通for
List<String> coll=new ArrayList<>();
coll.add("aaa");
coll.add("bbb");
coll.add("aa");
for (int i = 0; i < coll.size(); i++) {
String s=coll.get(i);
System.out.println(s);
}
想要操作索引时可以考虑这样写
5、列表迭代器
ListIterator<String>it=coll.listIterator();
while (it.hasNext()){
String str= it.next();
}
列表迭代器中可以增加元素
set集合
set集合的特点是:无序,不重复,无索引
它的的实现类有:Hashset,linkedHashset Treeset
主要作用是去重
set中遍历方式
分别为迭代器,增强for,lambda表达式与list前三条相同
Hashset,linkedHashset Treeset的区别
Hashset:无序,不重复,无索引
inkedHashset:有序,不重复,无索引
Treeset:可排序,不重复,无索引--->对于数值类型:integer,double从小到大排序
--->对于字符,字符串:按照Ascll码表中数字的升序排序(看 第一个数字)