活动地址:优快云21天学习挑战赛
一、背景介绍
1.什么是集合?
Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。
在Java中,如果一个Java对象可以在内部持有若干其他Java对象,并对外提供访问接口,我们把这种Java对象称为集合。
2.为什么用集合?
与数组相比,集合有如下优点:
- 长度不固定,可以增删元素。
- 集合变种丰富,功能强大,更适合一些开发需求,如要求无重复元素就适合使用set集合。
3.集合的大体分类
单列的意思是每个元素只存储一个数据,而双列每个元素则存储的是一对键值对。
后面主要介绍单列集合
二、使用特点及注意事项
1.特点
(1)List系列集合:添加的元素是有序、可重复、有索引。
ArrayList、LinekdList :有序、可重复、有索引。
(2)Set系列集合:添加的元素是无序、不重复、无索引。
HashSet: 无序、不重复、无索引;
LinkedHashSet: 有序、不重复、无索引。
TreeSet:按照大小默认升序排序、不重复、无索引。
2.注意事项
(1)集合都是泛型的形式,可以在编译阶段约束集合只能操作某种数据类型,如下所示:
(2)注意:集合和泛型都只能支持引用数据类型,不支持基本数据类型,所以集合中存储的元素都认为是对象,如下演示:
(3)关于Java的基本类型和包装类,详细参考下面这篇文章,有一些特别的注意点
Java基本类型和包装类
三、集合的三种遍历方式
分别是
- 迭代器
- foreach/增强for循环
- lambda表达式
具体代码演示:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Test {
public static void main(String[] args){
Collection<String> list = new ArrayList();
list.add("windx");
list.add("xlk");
list.add("Bill");
//迭代器遍历(注意遍历后迭代器的指针位置)
Iterator<String> it = list.iterator();
while (it.hasNext()){ //hasNext()会取迭代器当前指针所指的元素
String ele = it.next(); //next()会取当前位置元素,并将指针移向下一位置
System.out.println(ele);
}
System.out.println("----------");
//增强for循环遍历
for (String ele:list) {
System.out.println(ele);
}
System.out.println("----------");
//结合lambda表达式遍历
list.forEach(obj -> System.out.println(obj));
System.out.println("----------");
System.out.println("已经遍历完啦^_^");
}
}
四、后话
集合的API使用很简单,如Collection作为单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的,具体如下:
不需要刻意去记(应试除外),一般IDE中会有代码提示的
还有很多知识点没有写完,以后有机会再补充~