类 Collections集合的操作


类 Collections

java.lang.Object
-java.util.Collections


public class Collections extends Object

此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。
它包含在 collection 上操作的多态算法,即“包装器”,
包装器返回由指定 collection 支持的新 collection,以及少数其他内容。 

如果为此类的方法所提供的 collection 或类对象为 null,则这些方法都将抛出 NullPointerException。 

public static <T extends Comparable<? super T>> void sort(List<T> list)
根据元素的自然顺序 对指定列表按升序进行排序。
列表中的所有元素都必须实现 Comparable 接口
此外,列表中的所有元素都必须是可相互比较的
(也就是说,对于列表中的任何 e1 和 e2 元素,e1.compareTo(e2) 不得抛出 ClassCastException)。
此排序被保证是稳定的:不会因调用 sort 方法而对相等的元素进行重新排序,*即重复的可以保留

public static <T> int binarySearch(List<?> list,T key)
 使用二分搜索法搜索指定列表,以获得指定对象(de索引)。
 如果搜索键在列表内,则返回他的索引
 否则返回-插入点-1
 
 public static <T> T max(Collection<?> coll)
  public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)
 根据元素的自然顺序,返回给定 collection 的最大元素。
 collection 中的所有元素都必须实现 Comparable 接口。
 此外,collection 中的所有元素都必须是可相互比较的
 (也就是说,对于 collection 中的任意 e1 和 e2 元素,e1.compareTo(e2) 不得抛出 ClassCastException)。
此方法在整个 collection 上进行迭代,所以它需要的时间与 collection 的大小成正比。 
参数:
coll - 将确定其最大元素的 collection。 
返回:
根据元素的自然顺序 返回给定 collection 的最大元素。 

public static void reverse(List<?> list)
反转指定列表中元素的顺序。
此方法以线性时间运行。 

public static void shuffle(List<?> list)
使用默认随机源对指定列表进行置换。所有置换发生的可能性都是大致相等的。


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

public class h {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ArrayList<String> list = new ArrayList<>();
		list.add("c");
		list.add("a");
		list.add("a");
		list.add("b");
		list.add("d");
		System.out.println(list);
		Collections.sort(list);	//将集合排序
		System.out.println(list);//[a, a, b, c, d]
		
		ArrayList<String> list1 = new ArrayList<>();
		list1.add("a");
		list1.add("c");
		list1.add("d");
		list1.add("f");
		list1.add("g");
		System.out.println(Collections.binarySearch(list1, "c"));//1
		System.out.println(Collections.binarySearch(list1, "f"));//3
		System.out.println(Collections.binarySearch(list1, "g"));//4
		System.out.println(Collections.binarySearch(list1, "b"));//-1-1-2 
		
		
		ArrayList<String> list2 = new ArrayList<>();
		list2.add("a");
		list2.add("c");
		list2.add("d");
		list2.add("g");
		list2.add("f");
		//根据默认排序结果获取集合中的最大值
		//先对其排序,然后返回最后一个元素
		System.out.println(Collections.max(list2)); //g
		
		Collections.reverse(list2);//反转集合
		System.out.println(list2);//[f, g, d, c, a]
		
		Collections.reverse(list2);
		Collections.shuffle(list2);	
		//随机置换,可以用来洗牌,集合中的顺序随机变换位置
		System.out.println(list2);//[d, a, c, f, g]
	}

}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值