java吧 关注:1,271,170贴子:12,780,561
  • 9回复贴,共1

二维数组内部元素打乱,如何做?

只看楼主收藏回复

有code最好....
就是将一个int[][] array内部所有的数字打乱....


1楼2012-11-19 05:06回复
    随机选出两个元素交换位置,循环一万次。


    IP属地:山东来自Android客户端2楼2012-11-19 07:14
    收起回复
      2025-07-26 11:21:28
      广告
      不感兴趣
      开通SVIP免广告
      顶着土狼的头像却没有extends土狼的精神实在不应该啊


      IP属地:湖北3楼2012-11-19 08:05
      收起回复
        suffle


        IP属地:重庆来自Android客户端4楼2012-11-19 15:34
        回复
          给你一段代码,你运行一下。
          import java.util.*;
          public class Randomtest{
          public static void main(String[]args){
          int[][]arr=new int[][]{
          new int[]{1,2,3},new int[]{4,5,6},new int[]{7,8,9}
          };
          Map<Integer,Integer> map1=new HashMap<Integer,Integer>();
          Map<Integer,Integer> map2=new HashMap<Integer,Integer>();
          int count=0;
          for(int i=0;i<arr.length;i++){
          for(int j=0;j<arr[i].length;j++){
          map1.put(count,arr[i][j]);
          count++;
          }
          }
          count=0;
          boolean[] b=new boolean[arr.length*arr.length];
          while(true){
          int a=(int)(Math.random()*arr.length*arr.length);
          if(b[a]==false){
          b[a]=true;
          }else{
          continue;
          }
          map2.put(count,map1.get(a));
          count++;
          if(count==arr.length*arr.length){
          break;
          }
          }
          count=0;
          for(int i=0;i<arr.length;i++){
          for(int j=0;j<arr[i].length;j++){
          arr[i][j]=map2.get(count);
          count++;
          System.out.print(arr[i][j]+",");
          }
          System.out.println();
          }
          }
          }


          5楼2015-08-15 16:18
          回复