• Collections中的常用方法


    collections中的常用方法

    public class CollectionsTest {
    
        public static void main(String[] args) {
            List list = new ArrayList();
            list.add(432);
            list.add(23);
            list.add(7);
            list.add(234);
            list.add(65);
            list.add(78);
            list.add(32);
            list.add(54);
            System.out.println("排序:" + sort(list));
    
    
            //list2必须大于等于list的size,list的size始终指的是元素的多少和容量无关
            List<Integer> list2 = new ArrayList<Integer>();
            list2.add(1);
            list2.add(1);
            list2.add(1);
            list2.add(1);
            list2.add(1);
            list2.add(1);
            list2.add(1);
            list2.add(1);
            list2.add(1);
            list2.add(1);
            //true,浅copy
            System.out.println("复制:" + copy(list2, list));
    
    
    
            List<Integer> list3 = new ArrayList<Integer>();
            list3.add(1);
            System.out.println("所有元素都不同吗? " + disjoint(list, list3));
    
            fill(list2,10);
            System.out.println("全部替换成10:"+list2);
    
            System.out.println("含有几个10:"+frequency(list2, 10));
    
            //必须是连续出现,有一个元素不同就是—1 ----lastIndexOfSubList(List<?> source, List<?> target)
            System.out.println("该集合出现的下标:"+indexOfSubList(Arrays.asList(1,2,3,4), Arrays.asList(2,8)));
    
    
            //在指定列表的指定位置处交换元素 0 和 2下标 交换
            List<Integer> list1 = Arrays.asList(1, 2, 3);
            Collections.swap(list1, 0, 2);
            System.out.println("1,2,3交换0和2:"+list1);
    
            //reverse(List<?> list) 反转list ,可指定一个comparator
    
            //replaceAll(List<T> list, T oldVal, T newVal)使用另一个值替换列表中出现的所有某一指定值。
    
    
            //返回由指定对象的 n 个副本组成的不可变列表
            List<Integer> list4 = Collections.nCopies(3, 5);
            System.out.println("三个5:"+list4);
    
            //也可以指定自定义comparator,还有min()一样的
            System.out.println(list1+"中最大值:"+Collections.max(list1));
        }
    
    
        /**
         * 排序
         *
         * @param list
         * @return
         */
        private static List<Integer> sort(List<Integer> list) {
            Collections.sort(list, (a, b) -> b - a);
            return list;
        }
    
        /**
         * copy将所有元素从一个列表复制到另一个列表。
         *
         * @param dest
         * @param src
         * @return
         */
        private static boolean copy(List<Integer> dest, List<Integer> src) {
            Collections.copy(dest, src);
            System.out.println(dest.get(0));
            System.out.println(dest.get(dest.size() - 1));
            return dest.get(0) == src.get(0);
        }
    
        /**
         * 如果两个指定 collection 中没有相同的元素,则返回 true。
         *
         * @param list
         * @param src
         * @return
         */
        private static boolean disjoint(List<Integer> list, List<Integer> src) {
            return Collections.disjoint(list, src);
        }
    
        /**使用指定元素替换指定列表中的所有元素。
         * @param list
         * @param replace
         */
        private static void fill(List<Integer> list, Integer replace) {
            Collections.fill(list, replace);
        }
    
        /**
         * 返回指定 collection 中等于指定对象的元素数。
         * @param list2
         * @param containNum
         */
        private static int frequency(List<Integer> list2, int containNum) {
           return Collections.frequency(list2, containNum);
        }
    
        /**
         * 返回指定源列表中第一次出现指定目标列表的起始位置;如果没有出现这样的列表,则返回 -1。
         * @param source
         * @param target
         * @return
         */
        private static int indexOfSubList(List<?> source, List<?> target)  {
           return Collections.indexOfSubList(source, target);
        }
    }
    
  • 相关阅读:
    java客户端调用c#的webservice服务
    hibernate 中如何用注解映射定长字符类型char(2)
    使用spring提供的LocalSessionFactoryBean来得到SessionFactory
    执行JDBC的executeUpdate()方法时,报错:数据类型不一致,应为number,但却为binary
    c++并发编程之进程创建(给那些想知道细节的人)
    c++编程之内存模型
    c++多线程编程互斥锁初步
    c++多线程编程——初探
    字符串匹配算法之————KMP算法
    字符串匹配算法第一篇——暴力匹配
  • 原文地址:https://www.cnblogs.com/zpyu521/p/11853782.html
Copyright © 2020-2023  润新知