欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Collections.shuffle()方法實(shí)例解析

 更新時(shí)間:2018年01月24日 14:11:48   作者:_calm  
這篇文章主要介紹了Collections.shuffle()方法實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是Collections.shuffle()方法的相關(guān)內(nèi)容,下面看看具體內(nèi)容。

Java.util.Collections類下有一個(gè)靜態(tài)的shuffle()方法,如下:

1)static void shuffle(List<?> list) 使用默認(rèn)隨機(jī)源對列表進(jìn)行置換,所有置換發(fā)生的可能性都是大致相等的。

2)static void shuffle(List<?> list, Random rand) 使用指定的隨機(jī)源對指定列表進(jìn)行置換,所有置換發(fā)生的可能性都是大致相等的,假定隨機(jī)源是公平的。

通俗一點(diǎn)的說,就像洗牌一樣,隨機(jī)打亂原來的順序。

注意:如果給定一個(gè)整型數(shù)組,用Arrays.asList()方法將其轉(zhuǎn)化為一個(gè)集合類,有兩種途徑:

1)用List<Integer> list=ArrayList(Arrays.asList(ia)),用shuffle()打亂不會(huì)改變底層數(shù)組的順序。

2)用List<Integer> list=Arrays.aslist(ia),然后用shuffle()打亂會(huì)改變底層數(shù)組的順序。代碼例子如下:

package ahu;
import java.util.*;
public class Modify {
	public static void main(String[] args){
		Random rand=new Random(47);
		Integer[] ia={0,1,2,3,4,5,6,7,8,9};
		List<Integer> list=new ArrayList<Integer>(Arrays.asList(ia));
		System.out.println("Before shufflig: "+list);
		Collections.shuffle(list,rand);
		System.out.println("After shuffling: "+list);
		System.out.println("array: "+Arrays.toString(ia));
		List<Integer> list1=Arrays.asList(ia);
		System.out.println("Before shuffling: "+list1);
		Collections.shuffle(list1,rand);
		System.out.println("After shuffling: "+list1);
		System.out.println("array: "+Arrays.toString(ia));
	}
}

運(yùn)行結(jié)果如下:

Before shufflig: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
After shuffling: [3, 5, 2, 0, 7, 6, 1, 4, 9, 8] 
array: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
Before shuffling: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
After shuffling: [8, 0, 5, 2, 6, 1, 4, 9, 3, 7] 
array: [8, 0, 5, 2, 6, 1, 4, 9, 3, 7] 

在第一種情況中,Arrays.asList()的輸出被傳遞給了ArrayList()的構(gòu)造器,這將創(chuàng)建一個(gè)引用ia的元素的ArrayList,因此打亂這些引用不會(huì)修改該數(shù)組。 但是,如果直接使用Arrays.asList(ia)的結(jié)果, 這種打亂就會(huì)修改ia的順序。意識(shí)到Arrays.asList()產(chǎn)生的List對象會(huì)使用底層數(shù)組作為其物理實(shí)現(xiàn)是很重要的。 只要你執(zhí)行的操作 會(huì)修改這個(gè)List,并且你不想原來的數(shù)組被修改,那么你就應(yīng)該在另一個(gè)容器中創(chuàng)建一個(gè)副本。

總結(jié)

以上就是本文關(guān)于Collections.shuffle()方法實(shí)例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Java接入通義千問的簡單方法示例

    Java接入通義千問的簡單方法示例

    ? 通義千問是阿里云開發(fā)的大語言模型(Large language Model )LLM,旨在提供廣泛的知識(shí)和普適性,可以理解和回答各領(lǐng)域中的問題,這篇文章主要給大家介紹了關(guān)于Java接入通義千問的簡單方法,需要的朋友可以參考下
    2024-02-02
  • Elasticsearch查詢之Term?Query示例解析

    Elasticsearch查詢之Term?Query示例解析

    這篇文章主要為大家介紹了Elasticsearch查詢之Term?Query示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Java比較兩個(gè)List的值是否相等的方法

    Java比較兩個(gè)List的值是否相等的方法

    這篇文章主要介紹了Java比較兩個(gè)List的值是否相等的方法,涉及java針對隊(duì)列比較的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • springboot多租戶設(shè)計(jì)過程圖解

    springboot多租戶設(shè)計(jì)過程圖解

    這篇文章主要介紹了springboot多租戶設(shè)計(jì)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • SpringBoot集成pf4j實(shí)現(xiàn)插件開發(fā)功能的代碼示例

    SpringBoot集成pf4j實(shí)現(xiàn)插件開發(fā)功能的代碼示例

    pf4j是一個(gè)插件框架,用于實(shí)現(xiàn)插件的動(dòng)態(tài)加載,支持的插件格式(zip、jar),本文給大家介紹了SpringBoot集成pf4j實(shí)現(xiàn)插件開發(fā)功能的示例,文中通過代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • JAVA操作MongoDB數(shù)據(jù)庫實(shí)例教程

    JAVA操作MongoDB數(shù)據(jù)庫實(shí)例教程

    MongoDB是一個(gè)文檔型數(shù)據(jù)庫,是NOSQL家族中最重要的成員之一,下面這篇文章主要給大家介紹了關(guān)于JAVA操作MongoDB數(shù)據(jù)庫的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • 關(guān)于消息中間件RocketMQ的基本概念及功能

    關(guān)于消息中間件RocketMQ的基本概念及功能

    這篇文章主要介紹了關(guān)于消息中間件RocketMQ的基本概念及功能,RocketMQ作為一款純java、分布式、隊(duì)列模型的開源消息中間件,支持事務(wù)消息、順序消息、批量消息、定時(shí)消息、消息回溯等,需要的朋友可以參考下
    2023-05-05
  • Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼(前端部分)

    Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼(前端部分)

    這篇文章主要為大家介紹了如何用Java語言實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼的生成(前端部分),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下
    2022-10-10
  • SpringBoot整合FastDFS中間件實(shí)現(xiàn)文件分布管理

    SpringBoot整合FastDFS中間件實(shí)現(xiàn)文件分布管理

    FastDFS是一個(gè)開源的輕量級(jí)分布式文件系統(tǒng),它對文件進(jìn)行管理,功能包括:文件存儲(chǔ)、文件同步、文件上傳、文件下載等,解決了大容量存儲(chǔ)和負(fù)載均衡的問題,本文介紹了SpringBoot整合FastDFS中間件實(shí)現(xiàn)文件分布管理,需要的朋友可以參考下
    2024-08-08
  • javax NotBlank和Email注解失效的解決

    javax NotBlank和Email注解失效的解決

    這篇文章主要介紹了javax NotBlank和Email注解失效的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論