zoukankan      html  css  js  c++  java
  • 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+"%");
     
        }
     
    }
    
  • 相关阅读:
    神舟笔记本反厂后带来的惊喜与郁闷
    如今是否还要坚持asp.net,坚持程序员这个不怎么光荣的称号
    严援朝的一句名言
    一个专科生程序员的痛苦境遇
    overflow:hidden 文本不在over 范围,也不显示
    困扰很久的问题
    未来已来,4K激活字库产业新世代
    4K超高清,为字库产业,打开了数字家电的大门
    2012中文字库简单统计与分类
    图说字王数格纵系列
  • 原文地址:https://www.cnblogs.com/jeddzd/p/12034366.html
Copyright © 2011-2022 走看看