繁体   English   中英

有没有办法在Java中为2D数组的行和列命名?

[英]Is there a way to give names to row and column of a 2D array in Java?

我以前谷歌它,答案是否定的,但我想知道是否有任何可行的方法。

有没有办法在Java中为2D数组的行和列命名?

不,你不能。 2D数组只是数组的数组。 您需要有2个其他数组,其中包含列和行的名称

如果需要,你可以使用不同的东西(另一种数据结构,比如Map)。

更多维数组通常是避免类的方法。 例如:

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();

或者,如果您希望更改与necesarry一样小:

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作为其值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM