我有不同类型的不同元素,例如:
<0, "none">, <0, "constructor">, <0, "none">, <0, "method">, <1, "method">, <2, "constructor">, <2, "method">, <2, "constructor">
我想将它们存储在地图或任何其他数据结构中而不删除重复项。我将地图实现如下:
Map<Integer, String> m1 = new HashMap<>();
m1.put(0, "none");
m1.put(0, "constructor");
m1.put(1, "none");
m1.put(0, "method");
打印m1
的结果是{0=method, 1=method, 2=constructor}
,我不需要。我想展示所有要素。
答案 0 :(得分:5)
创建如下所示的对象
public class MyData {
private int id;
private String type;
// Constructor
// getters and setters
}
然后创建MyData对象并将其存储在列表中
List<MyData> myData = new ArrayList<MyData>();
MyData data1 = new MyData(0, "none");
MyData data2 = new MyData(1, "method");
MyData data3 = new MyData(2, "constructor");
MyData data4 = new MyData(0, "none");
myData.add(data1);
myData.add(data1);
myData.add(data1);
myData.add(data1);
答案 1 :(得分:3)
Guava有一个multimap类,非常适合此类问题。看看multimap。
答案 2 :(得分:0)
Map
中的键必须是唯一的,因此一旦调用m1.put(0, "constructor");
,您将替换映射到0的先前值"none"
。使用多图(Map<Integer,List<String>>
),或使用Pair
的列表/集合。