zoukankan      html  css  js  c++  java
  • Java 集合 (Collections、Arrays)

    Collections

    • Collections是集合框架中的一个工具类。该类中的方法都是静态的。

    Collections 常用方法

    • swap(List<?> list, int i, int j) 交换指定列表中指定位置的元素。
    • sort(List list) 根据其元素的natural ordering对指定的列表进行排序。
    • max(Collection<? extends T> coll) 根据其元素的自然排序返回给定集合的最大元素。
    • min(Collection<? extends T> coll) 根据其元素的 自然顺序返回给定集合的最小元素。
    • sort(List list, Comparator<? super T> c) 根据指定的比较器引起的顺序对指定的列表进行排序。
    • reverse(List<?> list) 反转指定列表中元素的顺序。
    • replaceAll(List list, T oldVal, T newVal) 将列表中一个指定值的所有出现替换为另一个。
    import java.util.*;
    
    class CollectionsDemo {
        public static void main(String[] args) {
            List<String> list = new ArrayList<String>();
            list.add("abcd");
            list.add("za");
            list.add("an");
            list.add("njjs");
            list.add("za");
            sop(list);
            Collections.swap(list, 0, 1);//交换元素
            sop(list);
            Collections.sort(list);//排序
            sop(list);
            sop(Collections.max(list));//返回最大元素
            sop(Collections.min(list));//返回最小元素
            Collections.sort(list, new Comparator<String>() {
                public int compare(String s1, String s2) {
                    return s1.length() - s2.length();
                }
            });
            sop(list);
            Collections.reverse(list);//反转列表中元素的顺序
            sop(list);
            Collections.replaceAll(list, "za", "aa");//替换列表中所有出现的指定的值
            sop(list);
        }
    
        public static void sop(Object obj) {
            System.out.println(obj);
        }
    }
    

    运行结果:
    [za, abcd, an, njjs, za]
    [abcd, an, njjs, za, za]
    za
    abcd
    [an, za, za, abcd, njjs]
    [njjs, abcd, za, za, an]
    [njjs, abcd, aa, aa, an]

    • reverseOrder(Comparator cmp) 返回一个比较器,它强制指定比较器的反向排序。
    import java.util.*;
    
    class CollectionsDemo {
        public static void main(String[] args) {
            TreeSet<String> list = new TreeSet<String>();
            list.add("abcd");
            list.add("za");
            list.add("an");
            list.add("njjs");
            TreeSet<String> list1 = new TreeSet<String>(Collections.reverseOrder());
            list1.add("abcd");
            list1.add("za");
            list1.add("an");
            list1.add("njjs");
            //按字符串长度排序
            TreeSet<String> list2 = new TreeSet<String>(Collections.reverseOrder(new Comparator<String>() {
                public int compare(String s1, String s2) {
                    if(s1.length() > s2.length()){
                        return 1;
                    }
                    if(s1.length() < s2.length()){
                        return -1;
                    }
                    return s1.compareTo(s2);
                }
            }));
            list2.add("abcd");
            list2.add("za");
            list2.add("an");
            list2.add("njjs");
            sop(list);
            sop(list1);
            sop(list2);
        }
    
        public static void sop(Object obj) {
            System.out.println(obj);
        }
    }
    

    运行结果:
    [abcd, an, njjs, za]
    [za, njjs, an, abcd]
    [njjs, abcd, za, an]


    Arrays

    • 用于操作数组的工具类。里面都是静态方法。

    Arrays常用方法

    • asList(T... a) 返回由指定数组支持的固定大小的列表。(将数组变成list集合)
      • 把数组变成list集合有什么好处?
        可以使用集合的思想和方法来操作数组中的元素。
      • 注意:将数组变成集合,不可以使用集合的增删方法。因为数组的长度是固定。
        如果你增删。那么会产生UnsupportedOperationException报错
    import java.util.*;
    
    class ArraysDemo {
        public static void main(String[] args) {
            Integer[] nums = {2, 4, 5};
            List<Integer> li = Arrays.asList(nums);//数组转集合
            sop(li);
            Integer[] arr = li.toArray(new Integer[li.size()]);//集合转数组
            sop(Arrays.toString(arr));
        }
    
        public static void sop(Object obj) {
            System.out.println(obj);
        }
    }
    

    运行结果:
    [2, 4, 5]
    [2, 4, 5]

  • 相关阅读:
    读取XML示例:C#获取XML的数据
    GridView不換行
    List<T> 的条件筛选 where使用方法
    [HDU] 1016 Prime Ring Problem
    [HDU] 1072 Nightmare 和HDU1180有点类似
    [HDU] 1180 诡异的楼梯个人觉得比较有趣的广搜索
    [HDU] 1312Red and Black 用广搜求能探寻到的点的数目
    [HDU] 1026 Ignatius and the Princess I 简单建模后广搜索求最短路径生成树
    [HDU] 1010 Tempter of the Bone最基本的深搜
    [HDU] 1175 连连看 剪枝优化后的性能飙升
  • 原文地址:https://www.cnblogs.com/hen-java/p/12620310.html
Copyright © 2011-2022 走看看