Java 迭代列表并将数据放入hashmap
我有一个列表,需要在其中循环,并将其数据放入hashmap。我正在使用这种方法Java 迭代列表并将数据放入hashmap,java,Java,我有一个列表,需要在其中循环,并将其数据放入hashmap。我正在使用这种方法 for(int i=0;i<list.size();i++) { HashMap hMap=new HashMap(); hMap.put("Data", list); } 下一个vali是--打印在com.bean中。xyz@23032bc[id=1]格式,我需要准确的数据,我将如何执行此操作?我不知道您正在尝试打印哪种类型的对象。但是,如果它是您试图打印的一个对象,则必须在类中创建一个to
for(int i=0;i<list.size();i++) {
HashMap hMap=new HashMap();
hMap.put("Data", list);
}
下一个vali是--
打印在com.bean中。xyz@23032bc[id=1]
格式,我需要准确的数据,我将如何执行此操作?我不知道您正在尝试打印哪种类型的对象。但是,如果它是您试图打印的一个对象,则必须在类中创建一个toString方法,该方法将重写object类中的方法
public string toString()
{
return "";
}
在return语句中,您可以返回一些objects属性。首先,您知道哈希表只包含一个值,对吗?如果要将
列表中的所有项添加到一个哈希表中,则必须调用HashMap hMap=newhashmap()代码>在for循环之外
要输出正确的数据,请为您的类型实现toString()
,或将其强制转换为正确的类型。我在这里看到多个问题
您将只获得hashmap中的最后一个列表项。因为您在每次迭代中创建一个新的hashmap,而它的引用在下一次迭代中丢失
您需要在com.bean.xyz类中实现toString方法以输出所需的数据成员
您可能希望调整填充哈希映射的方式,如下所示:
HashMap<String,xyz> hMap=new HashMap<String,xyz>();
for(int i=0;i<list.size();i++)
{
hMap.put("Data"+i, list);
}
映射是从键到值的映射。您需要为列表的每个元素定义什么是键,什么是值
您的原始代码:
for(int i=0;i<list.size();i++) {
HashMap hMap=new HashMap();
hMap.put("Data", list);
}
请注意,“abc”
在地图中“丢失”。这是因为您只能将一个键映射到一个值。另一方面,您可以有一个映射
,即从每个键到一组值的映射。这实际上就是多重映射,Guava有一个实现
相关问题
- -一些例子
- -不要在新代码中使用原始类型
铸造itr.next()
不会有任何好处。。。如果你是这么说的话。对-需要实现“toString()”.oops。我想对我来说太早了
public class xyz {
...
public String toString () {
return "hello world"; //put what you want to see here
}
...
}
for(int i=0;i<list.size();i++) {
HashMap hMap=new HashMap();
hMap.put("Data", list);
}
List<String> list = Arrays.asList(
"abc", "def", "ghi", "ijk", "abracadabra"
);
Map<Character,String> map = new HashMap<Character,String>();
for (String s : list) {
map.put(s.charAt(0), s);
}
System.out.println(map); // prints "{g=ghi, d=def, a=abracadabra, i=ijk}"
System.out.println(map.get('i')); // prints "ijk"
System.out.println(map.containsKey('x')); // prints "false"