1、 代码演示
【1】新增一个类,用来测试集合。先创建一组数组,数组可以存放不同的数据类型。对于Object类型的数组元素,可以通过.getClass方法获取到具体类型。
【2】如果数组指定类型为int的时候,使用.getClass()就会提示错误。
【3】集合获取元素的值,通过get(下标)来获取。
【4】集合可以获取到指定元素的类型
【5】可以直接输出集合对象来打印集合的内容。使用输出语句,输出的对象会被自动toString()
List集合:
-
是有序的,内存空间是连续的,查询效率高。
-
删除和插入的效率低:删除或插入一个元素后,为了保证集合相邻数据的空间是连续的,那么其他元素也都要被移动。
LinkedList集合:
-
查询效率低。
-
删除和插入效率高。
2 集合常见操作
2.1 常用遍历
// 集合或元素个数 size()
System.out.println(list.size());
// 集合遍历 for循环
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
// foreach
for(Object o : list) {
System.out.println(o);
}
2.2 迭代器进行遍历
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
3、Set集合
-
List接口特点: 元素可以重复,保证顺序性
-
Set接口特点:元素不可重复,不保证顺序
3.1 Set集合演示
Set集合的顺序是随机的, 并且会自动去重。
Set set = new HashSet();
set.add(1);
set.add("2");
set.add(3.3);
set.add(4.0F);
set.add(true);
set.add(3.3);
System.out.println(set);
3.2 Set集合遍历
只能通过迭代器进行遍历
for (Object o : set) {
System.out.println(o);
}
System.out.println("**************************");
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
3.3 TreeSet
无序不可重复,但是可以按照元素的大小顺序自动排序
Set set = new TreeSet();
set.add(1);
set.add(2);
set.add(33);
4、Map集合
4.1 Map基础操作
【1】map中的值,只能通过key来获得,不能通过下标来获取,因为数据是无序的。
Map map = new HashMap();
map.put("name","Wesky");
map.put("Company","NTI");
map.put("age",18);
map.put("sex","男");
map.put("age",20);
map.put(666,"hello world");
map.put(666,999);
System.out.println(map.keySet());
System.out.println(map.values());
【2】如果存在重复的key,以最后的key的数据为准,原先会被覆盖。
4.2 Map的遍历
两种遍历方式。
Set keySet = map.keySet();
for (Object o : keySet) {
System.out.println("key = "+ o + " | value = "+map.get(o));
}
System.out.println("**************************");
for (Object o : map.entrySet()) {
Map.Entry entry = (Map.Entry) o;
System.out.println("key = "+ entry.getKey() + " | value = "+entry.getValue());
}
五、集合工具类
5.1 Arrays
提供一系列数组与集合转换工具
5.2 Collections
提供对集合的多种操作方式