1. asList()方法
1. Arrays工具类的asList(T … t)方法的使用:将数组转化成集合
2. 传进来基本类型数组和引用类型数组的差别
public class TestDemo01 {
public static void main(String[] args) {
//传入引用类型
List<String> strings = Arrays.asList("abc", "def", "ghi", "jkl");
List<Integer> integers = Arrays.asList(111, 222, 333, 444, 555);
System.out.println(strings); //[abc, def, ghi, jkl]
System.out.println(integers); //[111, 222, 333, 444, 555]
//传入一个基本类型的数组
int[] arr = {
10,20,30,40,50};
List<int[]> ints = Arrays.asList(arr);
System.out.println(ints.get(0)[1]); //20 获取第一个数组的第二个元素
System.out.println(ints.toString()); //[[I@3f99bd52] 存的是数组的地址值
//传进来一个对象数组
Integer[] integers1 = {
12,22,32,42,52};
List<Integer> integerList = Arrays.asList(integers1);
System.out.println(integerList.get(1)); //22
System.out.println(integerList); //[12, 22, 32, 42, 52]
//传进来多个基本类型的数组,转化的集合是:在这个集合中,放入了多个数组对象
int[] arr1 = {
11,12,13,14,15};
int[] arr2 = {
21,22,23,24,25};
int[] arr3 = {
31,32,33,34,35};
List<int[]> intList = Arrays.asList(arr1, arr2, arr3);
System.out.println(intList);
//传进来多个对象数组,那么就把这个对象数组作为整体,放到集合中
Integer[] arr4 = {
12,22,32,42,52};
Integer[] arr5 = {
44,55,66,77,88};
Integer[] arr6 = {
31,41,51,61,71};
List<Integer[]> integersList = Arrays.asList(arr4, arr5, arr6);
System.out.println(integersList);
}
}
3. 【注意事项】asList()得到的集合的长度是不可变的,也就是说不能对该集合进行add()和remove()方法
2. 集合嵌套之ArrayList嵌套ArrayList
1. 引入:我们班有学生,每一个学生是不是一个对象。所以我们可以使用一个集合表示我们班级的学生。ArrayList。但是呢,我们旁边是不是还有班级,每个班级是不是也是一个ArrayList。 而我现在有多个ArrayList。也要用集合存储,怎么办呢?集合嵌套之ArrayList嵌套ArrayList
2. 代码示例
public class TestDemo02 {
public static void main(String[] args) {
ArrayList<Student> javaList = new ArrayList<>();
javaList.add(new Student("ez",23));
javaList.add(new Student("vn",24));
ArrayList<Student> webList = new ArrayList<>();
webList.add(new Student("noc",33));
webList.add(new Student("mf",35));
ArrayList<Student> linuxList = new ArrayList<>();
linuxList.add(new Student("tf",36));
linuxList.add(new Student("ag",38));
//集合嵌套
ArrayList<ArrayList<Student>> allList = new ArrayList<>();
allList.add(javaList);
allList.add(webList);
allList.add(linuxList);
//获取每一个人的信息:增强for
for (ArrayList<Student> minList : allList) {
for (Student student : minList) {
System.out.println(student.getName() + "===" + student.getAge());
}
}
}
}
class Student{
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
3. Set集合
1. Set集合概述:一个不包含重复元素的Collection接口的子接口
2. Set集合的结构图
4. HashSet集合
1. HashSet概述:构造一个新的空set,其底层 HashMap 实例的默认初始容量是16
2. HashSet的数据结构:HashSet的底层是哈希表,元素无序(存取顺序不一致),不允许有重复元素,线程不安全。
3. HashSet集合存储基本类型的元素
public class TestDemo01 {
public static void main(String[] args) {
HashSet<String> stringHashSet = new HashSet<>()