集合打乱顺序Collections.shuffle()方法源码小记

这篇博客探讨了如何在Java中使用Collections.shuffle()方法来打乱集合顺序。作者通过对比ArrayList和LinkedList的不同处理方式,解释了RandomAccess接口在其中的作用,并分析了shuffle()方法的效率差异。文章还提及了Java生成随机数的几种方法,但主要焦点集中在源码分析上。
摘要由CSDN通过智能技术生成

写博客只是为了记录一些知识,刚刚入行,如果写的不对请各位多多指正。

刚开始看算法一书,温习了比较初级的二分法,如下图

private static int BinarySearch(int[] arr,int key) {
		int begin =0;
		int end =arr.length-1;
		while(begin<=end) {
			int mid = begin+ (end-begin)/2;
			if(key<arr[mid]) {
				end = arr[mid]-1;
			}else if(key>arr[mid]){
				begin = arr[mid]+1;
			}else {
				return mid;
			}
		}
		return -1;
		
	}

二分法的前提是数组是需要排序的java中是有写好的方法的Arrays.sort()或者Collections.sort() 

突然想到有没有打乱顺利的方法呢,于是乎上网查了下 别人写的实现,后来发现java也有写好的方法Collections.shuffle()

    public static void shuffle(List<?> list) {
        Random rnd = r;
        if (rnd == null)
            r = rnd = new Random(); // harmless race.
        shuffle(list, rnd);
    }  
    public static void shuffle(List<?> list, Random rnd) {
        int 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值