Java自学-集合框架 Collections
程序员文章站
2023-04-04 14:34:48
Java集合框架 工具类Collections Collections是一个类,容器的工具类,就如同Arrays是数组的工具类 步骤 1 : 反转 reverse 使List中的数据发生翻转 package collection; import java.util.ArrayList; import ......
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+"%"); } }