KeyValuePair
Java中有类似的东西吗?
我有一个非常长的以下类元素列表:
public class Foo {
int id;
Set<String> items;
}
存储在这里:
LinkedList<Foo> myList;
每次我搜索一个项目时,我都会遍历列表并搜索该项目,但这需要很多时间。我想做这样的事情:
myList.get(123) => items of the Foo with id = 123
KeyValuePair
Java中有类似的东西吗?
我有一个非常长的以下类元素列表:
public class Foo {
int id;
Set<String> items;
}
存储在这里:
LinkedList<Foo> myList;
每次我搜索一个项目时,我都会遍历列表并搜索该项目,但这需要很多时间。我想做这样的事情:
myList.get(123) => items of the Foo with id = 123
为此,您可以Map
在 Java 中使用。它将允许键值对。
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
尝试一些java.util.Map
.
更多信息:这里
我认为这MultiMap<Integer,String>
适合您的情况。
您将需要一个所谓的 MultiMap,java 默认情况下没有,但您始终可以为此目的使用 Map。
尝试使用HashMap<Integer, Set<String>>
导入 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"));
}
}
}