java list隨機打亂

java list隨機打亂
package
arrlist; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; /** * 打亂列表中數據元素的三種實現方法 * * @author Alexia * @date 2013-7-16 * */ public class ShuffleTest { // 打亂列表實現方法1 public <T> void shuffle1(List<T> list) { int size = list.size(); Random random = new Random(); for(int i = 0; i < size; i++) { // 獲取隨機位置 int randomPos = random.nextInt(size); // 當前元素與隨機元素交換 T temp = list.get(i); list.set(i, list.get(randomPos)); list.set(randomPos, temp); } } // 打亂列表實現方法2 public <T> void shuffle2(List<T> list) { int size = list.size(); Random random = new Random(); for(int i = 0; i < size; i++) { // 獲取隨機位置 int randomPos = random.nextInt(size); // 當前元素與隨機元素交換 Collections.swap(list, i, randomPos); } } // 打亂列表實現方法3 public <T> void shuffle3(List<T> list) { // 打亂順序 Collections.shuffle(list); } // 打印列表 public <T> void print(List<T> list) { for(T t : list) { System.out.print(t + " "); } System.out.println("\n"); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ShuffleTest st = new ShuffleTest(); List<String> tagClouds = new ArrayList<String>(6); // 通常從數據庫中讀取,這裏僅以測試爲目的 tagClouds.add("計算機"); tagClouds.add("Java"); tagClouds.add("編程"); tagClouds.add("C/C++"); tagClouds.add("操做系統"); tagClouds.add("數據庫"); System.out.println("原順序:"); st.print(tagClouds); st.shuffle1(tagClouds); System.out.println("打亂順序一:"); st.print(tagClouds); st.shuffle2(tagClouds); System.out.println("打亂順序二:"); st.print(tagClouds); st.shuffle3(tagClouds); System.out.println("打亂順序三:"); st.print(tagClouds); } }
相關文章
相關標籤/搜索