java集合与泛型

集合与泛型

1.泛型:表示集合中 保存数据的类型
//创建一个集合 保存 a b c d 字符串
//后面的尖括号 要跟前面填的泛型 保持一致
//如果前面声明了泛型 后面泛型可以省略不写 省略不写 表示类型一致
ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        //用迭代器遍历
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            // 添加泛型之后 可以省去 强转类型的麻烦
            String next = iterator.next();
            System.out.println(next);
        }
2.    //Arrays 类方法 把数组转化为集合
        int[] array = {1,2,3,4,5};// 没有进行自动装箱
        //把数组当做集合中的一个元素 转为了集合
        List<int[]> asList = Arrays.asList(array);
        System.out.println(asList);

        Integer[] array2 = {1,2,3,4,5};//自动装箱为Integer类型
        List<Integer> asList2 = Arrays.asList(array2);
        System.out.println(asList2);

        String[] array3 = {"wanglong","wangsong"};
        //数组转集合
        List<String> asList3 = Arrays.asList(array3);
        System.out.println(asList3);
        //使用aslist数组转集合 得到一个集合 
        //注意: 这个集合不允许 进行添加或删除的操作
        //这么转得意义: 可以调用集合的其他方法
        boolean iscontains = asList3.contains("wanglong");
        System.out.println(iscontains);

// int ... num 相当于 传入的参数是个数组
    // int ... num 可以接受多个参数 只能是方法参数的最后一个
    //jdk 1.5出来的
    public static void fun2(int ... num) {
        //遍历
        for (int i = 0; i < num.length; i++) {
            System.out.println(num[i]);
        }
    }
3.集合中的删除方式
    1.不使用迭代器删除
    public static void fun1() {
        //创建集合 保存 a b c d e
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        //不使用迭代器 遍历
        //如果集合中有b 就把b删除
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).equals("b")) {
                //先当参数传进去 在进行自减
                list.remove(i--);
            }
        }
        System.out.println(list);
    }
    2.使用迭代器删除
    public static void fun2() {
        // 迭代器删除
        //创建集合 保存 a b c d e
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        ListIterator<String> listIterator = list.listIterator();
        while (listIterator.hasNext()) {
            String string = listIterator.next();
            if (string.equals("b")) {
                listIterator.remove();
            }
        }
        System.out.println(list);
    }
4.集合中的排序
//创建一个集合 存入5个学生 按学生年龄 进行排序
public static void fun1() {
        //创建一个集合 存入5个学生 按学生年龄 进行排序
        ArrayList<Student> list = new ArrayList<>();
        list.add(new Student("a", 19));
        list.add(new Student("b", 13));
        list.add(new Student("c", 16));
        list.add(new Student("d", 20));
        list.add(new Student("e", 15));
        for (int i = 0; i < list.size() - 1; i++) {
            for (int j = 0; j < list.size() - 1 - i; j++) {
                Student s1 = list.get(j);
                Student s2 = list.get(j + 1);
                if (s1.getAge() > s2.getAge()) {
                    //交换(修改)在集合中的位置
                    list.set(j+1, s1);
                    list.set(j, s2);
                }
            }
        }
        System.out.println(list);
    }
}
//创建一个集合 存入5个学生 按学生姓名 进行排序
public static void fun2(ArrayList<Student> list) {
        for (int i = 0; i < list.size() - 1; i++) {
            for (int j = 0; j <list.size() - 1 - i; j++) {
                //获取学生
                Student s1 = list.get(j);
                Student s2 = list.get(j + 1);
                //比较姓名
                if (s1.getName().compareTo(s2.getName()) > 0) {
                    //交换
                    Collections.swap(list, j, j + 1);
                }
            }
        }
        System.out.println(list);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值