数组是否适合在这里做?

时间:2011-02-11 01:35:45

标签: java arrays multidimensional-array

我的目标是获取一个对象,我可以迭代并获取用户的firstName和他的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]将是颜色。

3 个答案:

答案 0 :(得分:1)

我不确定这里最好的解决方案是什么。首先使用Map来表示用户已经是错误的。我将创建一个代表User的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().
}

然后只需在List<User>中收集它们,然后传递它。

答案 1 :(得分:0)

两种非常简单的方法

  1. Map<String,Map<String,Double>>  map2d = new HashMap<String,Map<String,Double>>();
    
    For each new "x-coordinate", you'd have to instantiate
    a new sub-HashMap, and put it into map2d. This could all be
    wrapped in some new class.
    
    to retrieve an element, you just use:
    map2d.get(xKey).get(yKey)
    
  2. 创建一个对类型并将其用作地图键

  3. http://www.velocityreviews.com/forums/t390520-2d-lookup-table.html

答案 2 :(得分:0)

我建议:

  1. 创建一个类似于对象的java bean:

    class Preferences{ //properties //getters //setters }

  2. 然后有一系列的偏好

    Preferences[] userPrefs = new Preferences[N]

  3. for (Preferences p : userPrefs) { //do the stuff}

  4. 进行迭代