Java集合框架篇-73-Collections类常见几个方法

       这篇我们来学习下Collections这个类,这是一个静态类,和Arrays类很像,主要是提供集合相关操作的。打开API 找到Collections类,发现成员方法全部都是静态修饰,没有构造方法(构造方法被私有化处理)。这里来学习几个常用的方法,在Collections类下。

1.排序 sort()方法

      这个方法,针对List集合使用的。传入的参数必须是一个List,这里我们用ArrayList来演示下排序效果。

package collections;

import java.util.ArrayList;
import java.util.Collections;

public class Demo1_Collections {

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();
		list.add("d");
		list.add("b");
		list.add("a");
		list.add("c");
		// 排序之前
		System.out.println(list);
		
		Collections.sort(list);
		//排序之后
		System.out.println(list);
		
	}

}

运行结果:

[d, b, a, c]
[a, b, c, d]

2.二分查找法

package collections;

import java.util.ArrayList;
import java.util.Collections;

public class Demo1_Collections {

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();
		list.add("a");
		list.add("c");
		list.add("f");
		list.add("g");
		
		System.out.println(Collections.binarySearch(list, "a"));
		System.out.println(Collections.binarySearch(list, "b"));
		System.out.println(Collections.binarySearch(list, "f"));
		
	}

}

运行结果:

0
-2
2

      二分查找返回的解释:如果查找存在,返回key的索引,如果不存在,返回-插入点-1。我们上面想查找b,b应该插入在a的位置,索引是1,但是b不存在,返回值就是-1-1 = -2.


3.取最大元素

      在一个集合中取出一个最大元素,默认是按照实现conpareTo方法排序。底层是先把集合进行排序,然后取出最后一个元素。

package collections;

import java.util.ArrayList;
import java.util.Collections;

public class Demo1_Collections {

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();
		list.add("a");
		list.add("c");
		list.add("g");
		list.add("f");
		
		System.out.println(Collections.max(list));
	}

}

运行结果输出是 g,这里默认安装unicode编码表排序。

4.反转集合

下面这个方法是针对集合元素进行反转输出。

package collections;

import java.util.ArrayList;
import java.util.Collections;

public class Demo1_Collections {

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();
		list.add("a");
		list.add("c");
		list.add("g");
		list.add("f");
		
		Collections.reverse(list);
		System.out.println(list);
	}

}

5.随机置换

      这个功能最简单能想到的就是洗牌,牌数固定,每次发牌顺序都是随机打乱的,下面多运行几次看看输出效果就能看到随机置换的效果。

package collections;

import java.util.ArrayList;
import java.util.Collections;

public class Demo1_Collections {

	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();
		list.add("a");
		list.add("c");
		list.add("g");
		list.add("f");
		
		Collections.shuffle(list);
		System.out.println(list);
	}

}

猜你喜欢

转载自blog.csdn.net/u011541946/article/details/80628850