当前位置: 移动技术网 > IT编程>开发语言>Java > Java自学-集合框架 Collections

Java自学-集合框架 Collections

2019年12月13日  | 移动技术网IT编程  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网