我之前用谷歌搜索过,答案是否定的,但我想知道是否有任何可能的方法。
有没有办法在Java中为二维数组的行和列命名?
No you can't. 2D array is just array of arrays. You'll need to have 2 other arrays with names for columns and rows
Probably you can use something different (another data structure like Map) if you need to.
更多维数组通常是避免类的方法。例如:
String[][] persons;
persons[0][1];
如果您遇到这样的代码,您应该首先使其更具可读性。
public static final int FIRSTNAME = 0;
public static final int LASTNAME = 1;
persons[0][FIRSTNAME];
persons[0][LASTNAME];
封装数据结构的更好方法是类:
public class Person {
private String firstname;
private String lastname;
public String getFirstname(){
return firstname;
}
public String getLastname(){
return lastname;
}
}
Person[] persons;
person[0].getFirstname();
或者,如果您希望更改尽可能少:
public class Person {
public static final int FIRSTNAME = 0;
public static final int LASTNAME = 1;
private String[] personData;
public String getFirstname(){
return personData[FIRSTNAME];
}
public String getLastname(){
return personData[LASTNAME];
}
}
做出你的选择
忘掉关联数组吧。你现在在 Java 中,并采用高级方法 :)
为此 Java 提供了地图。你需要使用地图。
这是一个例子
import java.util.*;
public class CollectionsDemo {
public static void main(String[] args) {
Map<String ,Integer> m1 = new HashMap<String ,Integer>();
m1.put("name1", 8);
m1.put("name2", 31);
m1.put("name3", 12);
m1.put("name4", 14);
System.out.println();
System.out.println(" Map Elements");
System.out.print("\t" + m1);
}
}
如果您需要更深入,正如您所说,
is there a way to give names to row and column of a 2D array in Java?
那么需要针对密钥存储数据结构,那么这是可能的。您可以针对密钥存储地图,然后您将其称为多重映射,如下所示
Map<X, Map<Y,Z>> map1;
看来您的要求是识别行。为此,您可以使用Map
由唯一键形成的数组,而不是使用数组。
你可以定义像
Map<String,ArrayList<SomeObject>> map = new HashMap<String,ArrayList<SomeObject>>();
通过这种方式,您可以放置一个可以用作行标识符的键,因为它是唯一的,并添加整个 arrayList 作为其值