List<Integer> list = new ArrayList<Integer>();
        for (int i = 0; i < 1000; i++) {
            list.add(i + 1);
        }
        List<Integer> list1 = new ArrayList<Integer>();
        List<Integer> list2 = new ArrayList<Integer>();
        List<Integer> list3 = new ArrayList<Integer>();
        List<Integer> list4 = new ArrayList<Integer>();
        Random r = new Random();
        for (int i = 0; i < list.size(); i++) {
            list1.add(list.remove(Math.abs(r.nextInt())%list.size()));
            list2.add(list.remove(Math.abs(r.nextInt())%list.size()));
            list3.add(list.remove(Math.abs(r.nextInt())%list.size()));
            list4.add(list.remove(Math.abs(r.nextInt())%list.size()));
        }
        System.out.println(list1);
        System.out.println(list2);
        System.out.println(list3);
        System.out.println(list4);

解决方案 »

  1.   

    import java.util.Arrays;
    import java.util.Random;
    public class JustT { /**
     * @param args
     */
    public static void main(String[] args) { long start = System.currentTimeMillis();
    int[] arr = new int[1000]; for (int i = 0; i < 1000; i++) {
    arr[i] = i + 1;
    } System.out.println(Arrays.toString(arr)); int[] arr2 = new int[1000];
    Arrays.fill(arr2, -1);
    System.out.println(Arrays.toString(arr2));
    for (int i = 0; i < 1000; i++) {
    Random rd = new Random();
    int id =-1;
    while (true) {
    id = rd.nextInt(1000);
    if (arr2[i] == -1) {
    if (arr[id] == -1) {
    continue;
    }
    arr2[i] = arr[id];
    arr[id] = -1;
    // System.out.println(i + "=" + arr[id]);
    break;
    }
    }
    }
    System.out.println(Arrays.toString(arr2)); for (int i = 0; i < 1000; i++) {
    System.out.print(arr2[i] + ",");
    if ((i + 1) % 250 == 0) {
    System.out.println("\n");
    }
    } long end = System.currentTimeMillis(); System.out.println("execute time:" + (end - start) + "ms"); }}
    好像复杂了。楼上的那个方法好,哈哈
      

  2.   

    int[] arr = new int[1000];
    for (int i = 0; i < 1000; i++)
      arr[i] = i;List<Integer> arrayList = Arrays.asList(arr);
    Collections.shuffle(arrayList);List<Integer> group1 = arrayList.subList(0, 250);
    List<Integer> group2 = arrayList.subList(250, 500);
    List<Integer> group3 = arrayList.subList(500, 750);
    List<Integer> group4 = arrayList.subList(750, 1000);
      

  3.   


            List<Integer> list = new ArrayList<Integer>();
            for (; list.size()!=0;)
                list.add(i + 1);
            }
            List<Integer> list1 = new ArrayList<Integer>();
            List<Integer> list2 = new ArrayList<Integer>();
            List<Integer> list3 = new ArrayList<Integer>();
            List<Integer> list4 = new ArrayList<Integer>();
            Random r = new Random();
            for (int i = 0; i < list.size(); i++) {
                list1.add(list.remove(Math.abs(r.nextInt())%list.size()));
                list2.add(list.remove(Math.abs(r.nextInt())%list.size()));
                list3.add(list.remove(Math.abs(r.nextInt())%list.size()));
                list4.add(list.remove(Math.abs(r.nextInt())%list.size()));
            }
            System.out.println(list1);
            System.out.println(list2);
            System.out.println(list3);
            System.out.println(list4);
    这样才对吧
      

  4.   


            List<Integer> list = new ArrayList<Integer>();
            for (; list.size()!=0;)
                list.add(i + 1);
            }
            List<Integer> list1 = new ArrayList<Integer>();
            List<Integer> list2 = new ArrayList<Integer>();
            List<Integer> list3 = new ArrayList<Integer>();
            List<Integer> list4 = new ArrayList<Integer>();
            Random r = new Random();
            for (; list.size()!=0; ) {
                list1.add(list.remove(Math.abs(r.nextInt())%list.size()));
                list2.add(list.remove(Math.abs(r.nextInt())%list.size()));
                list3.add(list.remove(Math.abs(r.nextInt())%list.size()));
                list4.add(list.remove(Math.abs(r.nextInt())%list.size()));
            }
            System.out.println(list1);
            System.out.println(list2);
            System.out.println(list3);
            System.out.println(list4);
      

  5.   

    [code]int[] arr = new int[1000];
    for (int i = 0; i < 1000; i++)
      arr[i] = i;
     
    List<Integer> arrayList = Arrays.asList(arr);
    Collections.shuffle(arrayList);[/code]为什么提示List<Integer> arrayList = Arrays.asList(arr);有错呢?
      

  6.   

    提示
    Type mismatch: cannot convert from List<int[]> to ArrayList<Integer>
      

  7.   

    拜你所赐,让我好一阵研究多线程我的思路是这样的:
    1.1000个数字弄4个线程,每个线程绑定一个List。每一个数字都让线程去抢,抢到放入自己的list当中;
    2.当其中一个线程抢够250个数字,就退出本次争抢,四个线程都够250就把1000分完了不过后来想了想对于解决你的问题其实不太合适,所以就补贴代码了,呵呵