Collection的集合与数组的转换,集合的排序和乱序

集合转换为数组

public static void main(String[] args) {
        Collection<String> collection = new ArrayList<String>();
        collection.add("aaa");
        collection.add("bbb");
        collection.add("ccc");
        collection.add("ddd");
        collection.add("eee");
        //集合转换成数组的方法
        Object[] o = collection.toArray();
        for(int i=0;i<o.length;i++){
            System.out.print(o[i]+"--");
        }
        //集合转换成数组的重载方法
        String[] arr = new String[collection.size()];
        collection.toArray(arr);
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+"--");
        }
    }

数组转换为集合

 public static void main(String[] args) {
        /**
         * 数组转换为集合
         * 数组的工具类:Arrays提供了一个静态方法asList,可以将
         * 给定的数组转换为一个List集合
         */
        //此时对该集合的操作就是对原数组的操作
        //由于数组是定长的,所以集合增删元素的操作是不支持的,会抛出异常UnsupportedOperationException。
        //若想对数组转换的集合元素增删,那只能自行创建一个集合并包含该集合元素。
        //所有集合都提供了一个参数为Collection的构造方法,
        //可有在创建当前集合的同时包含给定集合中的所有元素。
        String[] arr = {"aaa","bbb","ccc","ddd","eee"};
        List<String> list = Arrays.asList(arr);
        System.out.println(list);
        list.add("1");
    }

排序与乱序

public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("jsbj");
        list.add("dsvsd");
        list.add("sdv");
        list.add("agfd");
        list.add("agfw");
        list.add("agfww");
        list.add("argd");
        //集合的工具类:java.util.Collections
        //其提供了一个静态方法:Collections.sort(list);
        //可以对List集合进行自然排序
        Collections.sort(list);
        System.out.println(list);
        //自然排序(从小到大)
        //sort方法要求集合元素必须实现Comparable接口。
        //java提供的常用类如:包装类,String等他们都实现了这个接口,定义了元素之间大小规则。
        //但是对于我们自定义类型的元素,不建议实现这个接口,因为这样的操作对我们的代码有侵入性,不利于代码维护。
        //重载的sort方法要求再传入一个参数,是Comparator接口的实现类。
        //该接口是用来单独定义一个比较器,为集合元素制定比较大小的规则。
        //这样一来,该sort方法会将集合元素利用该比较器的比较规则两两比较,并按照从小到大的顺序将集合排序。
        //Comparator的泛型与集合的泛型一致
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                //按照字符串的个数比较大小
                return o1.length()-o2.length();
            }
        });
        System.out.println(list);
        //compare方法用来定义参数o1,o2的比较大小规则,
        //返回值是一个整数,该值关注的是取值范围
        //当返回值>0时表示:o1>o2
        //当返回值<0时表示:o1<o2
        //当返回值=0时表示:o1==o2

        //乱序方法Collections.shuffle(list);
        Collections.shuffle(list);
        System.out.println(list);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值