Java 迭代列表并将数据放入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

我有一个列表,需要在其中循环,并将其数据放入hashmap。我正在使用这种方法

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"