• Java自学-集合框架 Collections


    Java集合框架 工具类Collections

    Collections是一个类,容器的工具类,就如同Arrays是数组的工具类

    步骤 1 : 反转

    reverse 使List中的数据发生翻转
    反转

    package collection;
       
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
       
    public class TestCollection {
        public static void main(String[] args) {
            //初始化集合numbers
            List<Integer> numbers = new ArrayList<>();
             
            for (int i = 0; i < 10; i++) {
                numbers.add(i);
            }
             
            System.out.println("集合中的数据:");
            System.out.println(numbers);
             
            Collections.reverse(numbers);
             
            System.out.println("翻转后集合中的数据:");
            System.out.println(numbers);
             
        }
    }
    

    步骤 2 : 混淆

    shuffle 混淆List中数据的顺序
    混淆

    package collection;
       
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
       
    public class TestCollection {
        public static void main(String[] args) {
            //初始化集合numbers
            List<Integer> numbers = new ArrayList<>();
             
            for (int i = 0; i < 10; i++) {
                numbers.add(i);
            }
             
            System.out.println("集合中的数据:");
            System.out.println(numbers);
             
            Collections.shuffle(numbers);
             
            System.out.println("混淆后集合中的数据:");
            System.out.println(numbers);
             
        }
    }
    

    步骤 3 : 排序

    sort 对List中的数据进行排序
    排序

    package collection;
       
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
       
    public class TestCollection {
        public static void main(String[] args) {
            //初始化集合numbers
            List<Integer> numbers = new ArrayList<>();
             
            for (int i = 0; i < 10; i++) {
                numbers.add(i);
            }
             
            System.out.println("集合中的数据:");
            System.out.println(numbers);
     
            Collections.shuffle(numbers);
            System.out.println("混淆后集合中的数据:");
            System.out.println(numbers);
     
            Collections.sort(numbers);
            System.out.println("排序后集合中的数据:");
            System.out.println(numbers);
             
        }
    }
    

    步骤 4 : 交换

    swap 交换两个数据的位置
    交换

    package collection;
       
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
       
    public class TestCollection {
        public static void main(String[] args) {
            //初始化集合numbers
            List<Integer> numbers = new ArrayList<>();
             
            for (int i = 0; i < 10; i++) {
                numbers.add(i);
            }
             
            System.out.println("集合中的数据:");
            System.out.println(numbers);
     
            Collections.swap(numbers,0,5);
            System.out.println("交换0和5下标的数据后,集合中的数据:");
            System.out.println(numbers);
             
        }
    }
    

    步骤 5 : 滚动

    rotate 把List中的数据,向右滚动指定单位的长度
    滚动

    package collection;
       
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
       
    public class TestCollection {
        public static void main(String[] args) {
            //初始化集合numbers
            List<Integer> numbers = new ArrayList<>();
             
            for (int i = 0; i < 10; i++) {
                numbers.add(i);
            }
             
            System.out.println("集合中的数据:");
            System.out.println(numbers);
     
            Collections.rotate(numbers,2);
            System.out.println("把集合向右滚动2个单位,标的数据后,集合中的数据:");
            System.out.println(numbers);
             
        }
    }
    

    步骤 6 : 线程安全化

    synchronizedList 把非线程安全的List转换为线程安全的List。

    package collection;
     
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
     
    public class TestCollection {
        public static void main(String[] args) {
            List<Integer> numbers = new ArrayList<>();
     
            System.out.println("把非线程安全的List转换为线程安全的List");
            List<Integer> synchronizedNumbers = (List<Integer>) Collections.synchronizedList(numbers);
     
        }
    }
    

    练习统计概率

    首先初始化一个List,长度是10,值是0-9。
    然后不断的shuffle,直到前3位出现
    3 1 4

    shuffle 1000,000 次,统计出现的概率

    答案 :

    package collection;
     
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
     
    public class TestCollection {
        public static void main(String[] args) {
            List<Integer> ls = new ArrayList<>();
     
            for (int i = 0; i < 10; i++) {
                ls.add(i);
            }
            int count = 0;
             
            for (int i = 0; i < 1000 * 1000; i++) {
                Collections.shuffle(ls);
                if(ls.get(0)==3 && ls.get(1)==1 && ls.get(2)==4)
                    count++;
            }
            double rate = count/(1000d*1000);
            System.out.println("出现的概率是"+rate*100+"%");
     
        }
     
    }
    
  • 相关阅读:
    1.4 build命令
    2.2-2 文章模块开发【添加文章页面脚本编写】
    2.2-1 文章模块开发 【入口脚本及模板的创建】
    2.1 开始一个项目 【功能梳理】
    [微信小程序]不在以下合法域名列表中
    [微信小程序]swiper保持宽高比
    爸爸一路走好
    LVM日记
    欲玩Discuz_X3.2,无奈不支持php7,再装个php5.3,编译到一半报错
    /sbin/ldconfig: /usr/local/lib64/libstdc++.so.6.0.22-gdb.py 不是 ELF 文件
  • 原文地址:https://www.cnblogs.com/jeddzd/p/12034366.html
Copyright © 2020-2023  润新知