如何在java中打印二维数组中元素的索引号?
这就是代码,我显示了5的倍数,然后洗牌如何在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;
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通过勾选答案附近的右箭头解决了您的问题,请接受此答案。