Java基础(21)asList()方法、集合嵌套、Set集合、HashSet集合、LinkedHashSet集合、TreeSet集合

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<>()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值