• Java从零开始学二十四(集合工具类Collections)


    一、Collections简介

    在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合

    二、Collections类的常用方法及常量

    No.
    方法
    类型
    描述
    1
    public static final List EMPTY_LIST
    常量
    返回一个空的List集合
    2
    public static final Set EMPTY_SET
    常量
    返回空的Set集合
    3
    public static final Map EMPTY_MAP
    常量
    返回空的Map集合
    4
    public static <T> boolean addAll(Collection<? super T> c, T... a)
    普通
    为集合添加内容
    5
    public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
    普通
    找到最大的内容,按比较器排序
    根据元素的自然顺序,返回给定集合的最大元素
    6
    public static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll)
    普通
    找到集合中的最小内容,按比较器排序
    根据元素的自然顺序 返回给定集合的最小元素
    7
    public static <T> boolean replaceAll(List<T> list,T oldVal,T newVal)
    普通
    用新的内容替换集合的指定内容
    使用另一个值替换集合中出现的所有某一指定值
    8
    public static void reverse(List<?> list)
    普通
    反转指定List 集合中元素的顺序。
    9
    public static <T> int binarySearch(List<? extends Comparable<? super T>> list,T key)
    普通
    查找集合中的指定内容

    使用二分查找算法查找指定List 集合,以获得指
    定对象的索引位置。

    10
    public static final <T> List<T> emptyList()
    普通
    返回一个空的List集合
    11
    public static final <K,V> Map<K,V> emptyMap()
    普通
    返回一个空的Map集合
    12
    public static final <T> Set<T> emptySet()
    普通
    返回一个空的Set集合
    13
    public static <T extends Comparable<? super T>> void sort(List<T> list)
    普通
    集合排序操作,根据Comparable接口进行排序

    根据元素的自然顺序 对指定List 集合按升
    序进行排序。

    14
    public static void swap(List<?> list,int i,int j)
    普通
    交换指定位置的元素

    三、将指定List 集合中的元素顺序反转

    package com.pb.demo2;
    
    import java.util.Collections;
    import java.util.LinkedList;
    import java.util.List;
    
    public class CollectionsTest1 {
    
        public static void main(String[] args) {
           //声明集合并添加元素
            LinkedList<String> list = new LinkedList<String>();
            list.add("one");
            list.add("two");
            list.add("three");
            
            System.out.println("=======正常遍历============");
            for (String s : list) {
                System.out.print(s+"	");
            }
            System.out.println();
            System.out.println("=======执行reverse方法============");
            Collections.reverse(list);
            for (String s : list) {
                System.out.print(s+"	");
            }
    
        }
    
    }

    四、sort 方法的作用是对指定List 集合按升序进行排序

    package com.pb.demo2;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class CollectionsTest2 {
    
        public static void main(String[] args) {
            //声明集合并添加集
            List<Integer> list = new ArrayList<Integer>();
            list.add(7);
            list.add(2);
            list.add(5);
            list.add(3);
            list.add(1);
            System.out.println("=======正常遍历============");
            for (Integer i : list) {
                System.out.print(i+"	");
            }
            
            System.out.println("
    =======执行sort方法============");
            Collections.sort(list);
            for (Integer i : list) {
                System.out.print(i+"	");
            }
            System.out.println("
    =======执行reverse方法============");
            Collections.reverse(list);
            for (Integer i : list) {
                System.out.print(i+"	");
            }
        }
    
    }

    结果:

    =======正常遍历============
    7    2    5    3    1    
    =======执行sort方法============
    1    2    3    5    7    
    =======执行reverse方法============
    7    5    3    2    1    

    五、集合查找、替换的方法

    package com.pb.demo2;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    
    public class CollectionsTest3 {
    
        public static void main(String[] args) {
            //声明集合并添加集
            //创建集合
            List<String> list = new ArrayList<String>();
            //增加10 个不同单词
            list.add("this");
            list.add("is");
            list.add("collection");
            list.add("test");
            list.add("and");
            list.add("we");
            list.add("can");
            list.add("learn");
            list.add("how");
            list.add("to");
            System.out.println("=======正常遍历============");
            for (String s : list) {
                System.out.print(s+"	");
            }
            //打印输出集合中最大元素和最小元素
            System.out.println("
    ========打印输出集合中最大元素和最小元素=========");
            String max=Collections.max(list);
            String min=Collections.min(list);
            System.out.println("list集合中的最大值:"+max);
            System.out.println("list集合中的最小值:"+min);
            System.out.println("
    =======执行sort方法============");
            Collections.sort(list);
            for (String s : list) {
                System.out.print(s+"	");
            }
            //binarySearch使用的前提是要排序才可以使用
            System.out.println("
    =============binarySearch根据内容查找索引================");
            System.out.println("we在list中的索引是:"+Collections.binarySearch(list, "we"));
            System.out.println("=============replaceAll方法================");
            //replaceAll
            Collections.replaceAll(list, "we", "our");
            for (String s : list) {
                System.out.print(s+"	");
            }
            //swap
            System.out.println("======swap========");
            Collections.swap(list, 0, 9);
            for (String s : list) {
                System.out.print(s+"	");
            }
            
            
    }
    }

    结果:

    =======正常遍历============
    this    is    collection    test    and    we    can    learn    how    to    
    ========打印输出集合中最大元素和最小元素=========
    list集合中的最大值:we
    list集合中的最小值:and
    
    =======执行sort方法============
    and    can    collection    how    is    learn    test    this    to    we    
    =============binarySearch根据内容查找索引================
    we在list中的索引是:9
    =============replaceAll方法================
    and    can    collection    how    is    learn    test    this    to    our    ======swap========
    our    can    collection    how    is    learn    test    this    to    and    

    六、使用Arrays.asList生成集合

    package com.pb.demo2;
    
    import java.util.Arrays;
    import java.util.List;
    
    public class Test1 {
    
        public static void main(String[] args) {
            String str="a,b,c,d,e,f";
            List<String> list1=Arrays.asList(str);
            System.out.println("list1的长度:  "+list1.size());
            for (String s : list1) {
                System.out.print(s+"	");
            }
            System.out.println("
    按逗号分离后生成集合");
            List<String> list2=Arrays.asList(str.split(","));
            System.out.println("list2的长度:  "+list2.size());
           for (String s : list2) {
            System.out.print(s+"	");
        }
        }
    
    }

    结果:

    list1的长度:  1
    a,b,c,d,e,f    
    按逗号分离后生成集合
    list2的长度:  6
    a    b    c    d    e    f    
  • 相关阅读:
    解题:POI 2006 Periods of Words
    解题:NOI 2014 动物园
    1483. 最高平均分
    1438. 较大分组的位置(回顾)
    1258. 漂亮子数组
    1903. 部门统计(回顾)
    1509. 柠檬水找零
    1451. 到最近的人的最大距离
    1425. 比较含退格的字符串
    1394. 山羊拉丁文
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4300335.html
Copyright © 2020-2023  润新知