自在如风

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]

posted @ 2020-04-02 15:42  我是痕  阅读(200)  评论(0编辑  收藏  举报