欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java自学-集合框架 Collections

程序员文章站 2022-05-18 19:31:52
Java集合框架 工具类Collections Collections是一个类,容器的工具类,就如同Arrays是数组的工具类 步骤 1 : 反转 reverse 使List中的数据发生翻转 package collection; import java.util.ArrayList; import ......

java集合框架 工具类collections

collections是一个类,容器的工具类,就如同arrays是数组的工具类

步骤 1 : 反转

reverse 使list中的数据发生翻转
Java自学-集合框架 Collections

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中数据的顺序
Java自学-集合框架 Collections

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中的数据进行排序
Java自学-集合框架 Collections

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 交换两个数据的位置
Java自学-集合框架 Collections

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中的数据,向右滚动指定单位的长度
Java自学-集合框架 Collections

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+"%");
 
    }
 
}