Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中打印二维数组中元素的索引号?_Java_Arrays_For Loop_Shuffle_Indexof - Fatal编程技术网

如何在java中打印二维数组中元素的索引号?

如何在java中打印二维数组中元素的索引号?,java,arrays,for-loop,shuffle,indexof,Java,Arrays,For Loop,Shuffle,Indexof,这就是代码,我显示了5的倍数,然后洗牌 import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class TwoDimensionalArrays { public static void main(String[] args) { int [][]table = new int[10][10]; int x = 5;

这就是代码,我显示了5的倍数,然后洗牌

 import java.util.Arrays;
 import java.util.Random;
 import java.util.Scanner;

 public class TwoDimensionalArrays {

public static void main(String[] args) {
        int [][]table = new int[10][10];

        int x = 5;

        for(int i = 0; i < table.length; i++){
            for(int j=0; j < table[i].length; j++){
                table[i][j]= x;
                x+=5;

                System.out.print(table[i][j] +  "\t");
            }
            System.out.println();
        }
此部分显示5个数字的倍数,最多500个

        int [][]table = new int[10][10];

        int x = 5;

        for(int i = 0; i < table.length; i++){
            for(int j=0; j < table[i].length; j++){
                table[i][j]= x;
                x+=5;

                System.out.print(table[i][j] +  "\t");
            }
            System.out.println();
        }
int[]table=newint[10][10];
int x=5;
对于(int i=0;i
这部分是使用Math.random的无序数组

        int [][]table = new int[10][10];

        int x = 5;

        for(int i = 0; i < table.length; i++){
            for(int j=0; j < table[i].length; j++){
                table[i][j]= x;
                x+=5;

                System.out.print(table[i][j] +  "\t");
            }
            System.out.println();
        }
        System.out.println("\nShuffled Arrays: \n");
        int index1 = 0;

        for(int a = 0; a < table.length; a++) {
            for(int b = 0; b < table[a].length; b++) {
                int il = (int)(Math.random()*table.length);
                int jl = (int)(Math.random()*table[a].length);

                int temp = table[a][b];
                table[a][b] = table[il][jl];
                table[il][jl] = temp;

                System.out.print(table[a][b] + "\t");
            }
            System.out.println();
        }

    }

   }
System.out.println(“\n缓冲数组:\n”);
int index1=0;
对于(int a=0;a

如何从无序排列的数组中打印元素的索引号,例如40?

因此,这里的想法是检查现有数组中是否存在随机索引上的值(在无序排列之前),如果是,则将随机项添加到地图中,并将值作为无序排列数组中新分配的索引,这样,一旦无序排列的数组准备就绪,您已经获得了完整的映射,其中包含每个值的所有细节及其在无序数组中的索引

        int [][]table = new int[10][10];

        int x = 5;

        for(int i = 0; i < table.length; i++){
            for(int j=0; j < table[i].length; j++){
                table[i][j]= x;
                x+=5;

                System.out.print(table[i][j] +  "\t");
            }
            System.out.println();
        }
public static void main(String [] args) {

    int [][]table = new int[10][10];

    Map<Integer,String> map = new HashMap<>();

    int x = 5;

    for(int i = 0; i < table.length; i++){
        for(int j=0; j < table[i].length; j++){
            table[i][j]= x;
            x+=5;

            System.out.print(table[i][j] +  "\t");
        }
        System.out.println();
    }

    System.out.println("\nShuffled Arrays: \n");
    int index1 = 0;

    for(int a = 0; a < table.length; a++) {
        for(int b = 0; b < table[a].length; b++) {
            int il = (int)(Math.random()*table.length);
            int jl = (int)(Math.random()*table[a].length);

            int temp = table[a][b];

            if(exists(table[il][jl], table)) {
                map.put(table[il][jl], "["+a + "][" + b + "]");
            }

            table[a][b] = table[il][jl];

            table[il][jl] = temp;

            System.out.print(table[a][b] + "\t");
        }
        System.out.println();
    }

    System.out.println(map);     
}

public static boolean exists(int value, int[][] tmp) {
    List<int[]> list = Arrays.asList(tmp);
    for(int[] arr: list){
        if(Arrays.stream(arr).anyMatch(i -> i == value)) {
            return true;
        }
    }
    return false;
}
publicstaticvoidmain(字符串[]args){
int[]table=新的int[10][10];
Map Map=newhashmap();
int x=5;
对于(int i=0;ii==value)){
返回true;
}
}
返回false;
}

希望这会有帮助

请检查下面的答案。在这里,我添加了separate
for
循环来打印无序数组。因为在打印
表[a][b]
值后的当前实现中,该值可以被随机生成的索引替换。所以最好的方法是在完全洗牌后打印洗牌数组。使用
Map
将索引保留为值。请检查以下代码:

        int [][]table = new int[10][10];

        int x = 5;

        for(int i = 0; i < table.length; i++){
            for(int j=0; j < table[i].length; j++){
                table[i][j]= x;
                x+=5;

                System.out.print(table[i][j] +  "\t");
            }
            System.out.println();
        }
public static void main(String[] args) {
    int[][] table = new int[10][10];

    int x = 5;

    for (int i = 0; i < table.length; i++) {
        for (int j = 0; j < table[i].length; j++) {
            table[i][j] = x;
            x += 5;

            System.out.print(table[i][j] + "\t");
        }
        System.out.println();
    }
    System.out.println("\nShuffled Arrays: \n");

    Map<String, Integer> map = new HashMap<>(); //Hash map to keep indexes

    //Shuffle the array
    for (int a = 0; a < table.length; a++) {
        for (int b = 0; b < table[a].length; b++) {
            int il = (int) (Math.random() * table.length);
            int jl = (int) (Math.random() * table[a].length);
            int temp = table[a][b];
            table[a][b] = table[il][jl];
            table[il][jl] = temp;
        }
    }

    //Print shuffled array
    for (int a = 0; a < table.length; a++) {
        for (int b = 0; b < table[a].length; b++) {
            int value = table[a][b];
            System.out.print(value + "\t");

            //Insert indexes to hash map as key value pairs
            String key = a + ", " + b;
            if (value == 40 || value == 320 || value == 450) {
                map.put(key, value);
            }
        }
        System.out.println();
    }

    //Printing indexes
    System.out.println("\nIndexes: \n");
    for (Map.Entry<String, Integer> entry : map.entrySet()) {
        System.out.println(entry.getValue() + " [" + entry.getKey() + "]");
    }
}
publicstaticvoidmain(字符串[]args){
int[]table=新的int[10][10];
int x=5;
对于(int i=0;i
你所说的“索引号”是什么意思?“40”是否等于(4,0)的索引,或者您是说(从(0,0),(0,1),…,(0,n),(1,0),…)这是遇到的第40项。@如果InspiritC通过勾选答案附近的右箭头解决了您的问题,请接受此答案。