!集合系列!
数组和集合的区别:
1、长度:
数组的长度唯一
集合的长度不唯一,可变,弹性
2、内容不同:
数组存储的元素类型是一致,统一的
集合可以存储不同类型的元素
3、元素的数据类型问题
数组可以存储基本数据类型,也可以存储引用数据类型
集合只能存储引用类型
package com.shujia.day15; /* /* boolean addAll(Collection<? extends E> c) 将指定集合中的所有元素添加到此集合(可选操作)。 boolean removeAll(Collection<?> c) 删除指定集合中包含的所有此集合的元素(可选操作)。 boolean containsAll(Collection<?> c) 如果此集合包含指定 集合中的所有元素,则返回true。 boolean retainAll(Collection<?> c) 仅保留此集合中包含在指定集合中的元素(可选操作),输出交集(前者) */ import java.util.ArrayList; import java.util.Collection; public class CollectionDemo1 { public static void main(String[] args) { Collection<Integer> c1=new ArrayList<>(); c1.add(111);c1.add(222);c1.add(333); Collection<Integer> c2=new ArrayList<>(); c2.add(444);c2.add(555); System.out.println(c1.addAll(c2)); //true System.out.println(c1); //[111, 222, 333, 444, 555] System.out.println(c2); // [444, 555] System.out.println(c1.containsAll(c2)); //true System.out.println(c1); //[111, 222, 333, 444, 555] System.out.println(c1.removeAll(c2)); //true System.out.println(c1); //[111, 222, 333] System.out.println("------------------------"); Collection<Integer> c3=new ArrayList<>(); c3.add(111);c3.add(222);c3.add(333); Collection<Integer> c4=new ArrayList<>(); c4.add(333);c4.add(222);c4.add(444); System.out.println(c3.retainAll(c4)); // true System.out.println(c3); // [222, 333] c3输出交集 System.out.println(c4); // [333, 222, 444] c4不变 } }
集合与数组的转换,通过Arrays工具类的一个方法: public static <T> List<T> asList(T... a)
public class ArraysDemo { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<Integer>(); list.add(32); list.add(21); list.add(8); list.add(35); list.add(1);
//将集合转成数组 Object[] objects = list.toArray(); //将数组转成集合 List<Object> list1 = Arrays.asList(objects); for (Object o:list1) { Integer o1 = (Integer) o; System.out.println(o1); } System.out.println("-----------"); //将数组中的元素排序 Arrays.sort(objects); for (Object o:objects) { Integer o1 = (Integer) o; System.out.println(o1); } } }