2

KeyValuePairJava中有类似的东西吗?

我有一个非常长的以下类元素列表:

public class Foo {
    int id;
    Set<String> items;
}

存储在这里:

LinkedList<Foo> myList;

每次我搜索一个项目时,我都会遍历列表并搜索该项目,但这需要很多时间。我想做这样的事情:

myList.get(123) => items of the Foo with id = 123
4

5 回答 5

6

为此,您可以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
于 2013-05-24T10:43:31.697 回答
4

尝试一些java.util.Map.

更多信息:这里

于 2013-05-24T10:43:37.770 回答
1

我认为这MultiMap<Integer,String>适合您的情况。

于 2013-05-24T11:02:55.463 回答
0

您将需要一个所谓的 MultiMap,java 默认情况下没有,但您始终可以为此目的使用 Map。

尝试使用HashMap<Integer, Set<String>>

于 2013-05-24T10:48:13.537 回答
-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"));
    }
}

}

于 2020-09-30T11:19:25.297 回答