Java 在这里使用数组是正确的吗?
我的目标是得到一个我可以迭代的对象,并获取我用户的名字和他的favColor 我有这个: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"
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().
}
然后将它们收集到列表中
并传递给大家。我建议:
类首选项{
//性质
//吸气剂
//二传手
}
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().
}