Java 在这里使用数组是正确的吗?

Java 在这里使用数组是正确的吗?,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我的目标是得到一个我可以迭代的对象,并获取我用户的名字和他的favColor 我有这个: for (Map user : userListing){ String firstName = (String) user.get(User.FIRST_NAME); String favColor = (String) user.get(User.FAVORITE_COLOR); // Build up some Arrayish object add "Bob", "red"

我的目标是得到一个我可以迭代的对象,并获取我用户的名字和他的favColor

我有这个:

for (Map user : userListing){
  String firstName    = (String) user.get(User.FIRST_NAME);
  String favColor     = (String) user.get(User.FAVORITE_COLOR);
  // Build up some Arrayish object add "Bob", "red"
  // 
  // what do i do here?
}
我不确定是否需要创建,比如说数组


我的想法是,我知道数组的外部级别代表每个用户,然后一旦我进入下一个级别,
item[0]
将是第一个名称,
item[1]
将是颜色。

两种方法非常简单

  • map2d=newhashmap();
    对于每个新的“x坐标”,您必须实例化
    一个新的子HashMap,并将其放入map2d。这一切都可能发生
    在一些新的类中包装。
    要检索元素,只需使用:
    map2d.get(xKey.get(yKey)
    
  • 创建一对类型并将其用作映射键


  • 我不确定这里的最佳解决方案是什么。首先,使用
    地图
    表示用户是错误的。我将创建一个javabean类,它表示
    用户

    public class User {
        private String firstName;
        private String favoriteColor;
    
        public String getFirstName() {
            return firstName;
        }
    
        public String getFavoriteColor() {
            return favoriteColor;
        }
    
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
    
        public void setFavoriteColor(String favoriteColor) {
            this.favoriteColor = favoriteColor;
        }
    
        // Add if necessary other javabean boilerplate like Serializable,
        // default c'tor, full c'tor, equals(), hashCode(), toString().
    }
    
    然后将它们收集到
    列表中
    并传递给大家。

    我建议:

  • 创建类似java bean的对象:

    类首选项{
    //性质
    //吸气剂
    //二传手
    }

  • 然后有一系列的偏好

    Preferences[]userPrefs=新的首选项[N]

  • 通过
    for(Preferences p:userPrefs){//dothestuff}进行迭代


  • 为什么你需要所有名字/颜色的副本?为什么首先要使用
    Map
    而不是普通的
    User
    javabean类?您是否负责定义用户的表示方式?如果没有,你能提供更多关于他们是如何表现的细节吗?如果是这样的话,在这种情况下您根本不可能使用数组。您有一个类型为{[“name”,“Bob”],[“color”,“red”]}的映射,您只需要另一个映射为[“Bob”,“red”]。创建新的HashMap和newMap.put(firstName,favColor);重复的名称将发生冲突,如果不需要,请使用BeanApprecate,如果您可以发布整个工作示例。我发现,如果您可以编辑和显示工作示例,在编写javbean之后接下来要做什么,如何操作
    列表
    ,我会感到困惑。我们将不胜感激。@Deepak:请参阅我的答案
    public class User {
        private String firstName;
        private String favoriteColor;
    
        public String getFirstName() {
            return firstName;
        }
    
        public String getFavoriteColor() {
            return favoriteColor;
        }
    
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
    
        public void setFavoriteColor(String favoriteColor) {
            this.favoriteColor = favoriteColor;
        }
    
        // Add if necessary other javabean boilerplate like Serializable,
        // default c'tor, full c'tor, equals(), hashCode(), toString().
    }