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
提供对集合的多种操作方式