簡體   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