Java中是否有类似KeyValuePair
的内容?
我有一个很长的以下类的元素列表:
public class Foo {
int id;
Set<String> items;
}
存储在这里:
LinkedList<Foo> myList;
每次搜索项目时,我都会遍历列表并搜索项目,但这需要花费很多时间。 我想做这样的事情:
myList.get(123) => items of the Foo with id = 123
答案 0 :(得分:6)
您可以在Java中使用Map
来实现此目的。它将允许键值对。
Map<Integer,Set<String>> map = new HashMap<Integer,Set<String>>();
将项目添加到地图
Set<String> set = new HashSet<String>();
set.add("ABC");
set.add("DEF");
map.put(123,set);
从地图中获取项目
map .get(123) will give Set<String> associated with id 123
答案 1 :(得分:4)
尝试java.util.Map
。
更多信息:here
答案 2 :(得分:1)
我认为MultiMap<Integer,String>
适用于您的情况。
答案 3 :(得分:0)
你需要一个所谓的MultiMap,默认情况下java没有这个,但你总是可以使用Map来达到这个目的。
尝试使用HashMap<Integer, Set<String>>
答案 4 :(得分:-1)
导入java.util。*;
班级温度{
public static void main(String[] args){
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"anand");
map.put(2,"bindu");
map.put(3,"cirish");
System.out.println(1+" = "+map.get(1));
System.out.println(2+" = "+map.get(2));
System.out.println(3+" = "+map.get(3));
Map<String,Integer> map1 = new HashMap<String,Integer>();
map1.put("anand",1);
map1.put("bindu",2);
map1.put("cirish",3);
System.out.println("anand = "+map1.get("anand"));
System.out.println("bindu = "+map1.get("bindu"));
if(map1.get("cirish") != null){
System.out.println("cirish = "+map1.get("cirish"));
}
if(map1.get("dinesh") != null){
System.out.println("cirish = "+map1.get("dinesh"));
}
}
}