Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java与Python字典的等价物是什么_Java_Dictionary_Hashtable - Fatal编程技术网

Java与Python字典的等价物是什么

Java与Python字典的等价物是什么,java,dictionary,hashtable,Java,Dictionary,Hashtable,我有一本Python词典 { SERVER1 : [ (list1),(list2),.... SERVER2 : [ (list2a),(list2b) ] } 它可以用Java实现吗? 我需要检查每个键是否存在,然后我需要将列表添加到该键,就像在不重写的情况下追加现有值一样 还需要读取键和值,并遍历列表中的每个值 请帮忙。很抱歉问这些问题,因为这是我在Java中的第一个程序。在Java中,字典是用接口定义的。常见的实现包括和: Map server=newhashmap(); put(

我有一本Python词典

{ SERVER1 : [ (list1),(list2),....
  SERVER2 : [ (list2a),(list2b) ] }
它可以用Java实现吗? 我需要检查每个键是否存在,然后我需要将列表添加到该键,就像在不重写的情况下追加现有值一样 还需要读取键和值,并遍历列表中的每个值


请帮忙。很抱歉问这些问题,因为这是我在Java中的第一个程序。在Java中,字典是用接口定义的。常见的实现包括和:

Map server=newhashmap();
put(“SERVER1”,newarraylist());
servers.get(“SERVER1”).add(“list1”);
servers.get(“SERVER1”).add(“list2”);
...

类似地,和是接口的常见实现。

因为要保存与键关联的每个值,需要一个包含值的ArrayList的HashMap。此对象应执行您需要的操作:

public class HashOfLists<K, V> {

    HashMap<K, ArrayList<V>> map = new HashMap<>();

    public ArrayList<V> get(K key) {
        return map.get(key);
    }

    public void put(K key, V value) {
        ArrayList<V> existingValues = get(key);
        if (existingValues == null) existingValues = new ArrayList<>();
        existingValues.add(value);
        map.put(key, existingValues);
    }

}
公共类哈希列表{
HashMap=newHashMap();
公共ArrayList get(K键){
返回map.get(key);
}
公开作废认沽权(K键,V值){
ArrayList existingValues=get(键);
如果(existingValues==null)existingValues=new ArrayList();
现有值。添加(值);
map.put(键,现有值);
}
}
要使用它,您可以执行以下操作:

HashOfLists<String, String> servers = new HashOfLists<>();
servers.put("SERVER3", "PROCESS A");
servers.put("SERVER3", "PROCESS B");

//Getting a list containing "PROCESS A" and "PROCESS B"
ArrayList<String> processes = servers.get("SERVER3");
HashOfLists服务器=新的HashOfLists();
servers.put(“SERVER3”、“进程A”);
servers.put(“SERVER3”、“进程B”);
//获取包含“进程a”和“进程B”的列表
ArrayList进程=servers.get(“SERVER3”);

是,使用
Map
。此网站具有搜索功能。在发布新问题之前使用它。为了完整性:我正在阅读一个文件,如下面的Server1 | cmd | blablal Server2 | cmd | blablala Server1 | cmd2 | blablablal Server2 | cmd4 | blablablabla代码返回每个服务器的最后一个值我正在阅读一个文件,如下面的Server1 | cmd | blal Server2 | blal Server1 | cmd2 | blal Server2 | cmd4 | bla bla bla bla bla blal Server2代码返回最后一个值每个服务器Server1 | cmd2 | blablal Server2 | cmd4 | blablabla的值,但我想要像{Server1:[(cmd | blablal),(cmd2 | blablablal)],Server2:[(cmd blablablala),(cmd4 | blablablablablabla)}代码是Map=new HashMap();而((line=br.readLine())!=null){String[[line]line\u split=line.split=line.split=line.split(“);if(line.split split slit=\=put){(line_split[0],(line_split[1]+“|”+line_split[2]);}System.out.println(map.keySet());for(map.Entry条目:map.entrySet()){String key=Entry.getKey();String value=Entry.getValue();System.out.println(key);System.out.println(value)}
HashOfLists<String, String> servers = new HashOfLists<>();
servers.put("SERVER3", "PROCESS A");
servers.put("SERVER3", "PROCESS B");

//Getting a list containing "PROCESS A" and "PROCESS B"
ArrayList<String> processes = servers.get("SERVER3");