-4

我想转换两个字符串的表

到 MAP<'String, ArrayList<'String>>

示例:我得到一张这样的表

hello world 
hi mom 
hi doug 
hello dad    

我想在这样的地图中转换它

hello, {world,dad,mom}
hi, {mom,doug} 

非常感谢您的帮助:)我很失望^^

4

6 回答 6

3
Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();

// Loop through the table and assign the
// key/value to be checked and added to your map
... 

if(map.containsKey(key))
{
    map.get(key).add(value);
}
else
{
    ArrayList<String> newValueList = new ArrayList<String>();
    newValueList.add(value);

    map.put(key, newValueList);
}
于 2013-08-01T16:52:00.927 回答
2
  • 初始化 a Map<String, List<String>>,调用它map

  • 循环遍历您的表格kv条目和...

    • 如果k不是映射中的键,则将条目映射添加k到包含的新列表v

    • 如果k是键,则添加v到列表中map.get(k)

于 2013-08-01T16:47:10.333 回答
0

你需要的是这个;

class Test{

   public static List<String> al1 = new ArrayList<String>();
   public static HashMap<String, List<String>> ohm = new HashMap<String, List<String>>();

         public static void main(String[] args){
       String insertStr = "Hello";
       ohm.put(insertStr, al1);

       if(ohm.containsKey(insertStr )) // DO SOME OPERATIONS HERE
       {
           ohm.get(insertStr).add("MOM");
           ohm.get(insertStr).add("World");
           ohm.get(insertStr).add("DAD");
           System.out.println(ohm.get(insertStr));

        }

    }
}

输出: [妈妈,世界,爸爸]

让我知道它是否有帮助,或者您有任何问题。

于 2013-08-01T16:47:22.963 回答
0
package stackoverflow;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MapExample
{
    private static final String[] data = new String[] { "hello world", "hello dad", "hello mom", "hi mom", "hi doug" };

    public static void main(String[] args)
    {
        Map<String, List<String>> dataMap = new HashMap<String, List<String>>();

        // Adjust the following as appropriate for actual data input and format 
        for(String s : data)
        {
            String[] splitData = s.split(" ");
            String key = splitData[0];
            String newValue = splitData[1];
            List<String> values = dataMap.get(key);
            if(values == null)
            {
                values = new ArrayList<>();
            }
            values.add(newValue);
            dataMap.put(key, values);
        }

        for(String key : dataMap.keySet())
        {
            System.out.print(key + ", { ");
            for(String value : dataMap.get(key))
            {
                System.out.print(value + " ");
            }
            System.out.println("}");
        }
    }
}

输出:

hello, { world dad mom }
hi, { mom doug }
于 2013-08-01T16:51:52.450 回答
0
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class TableToMap {

    private static String[] table = new String[] {"hello world", "hello mom", "hello dad"};
    private static Map <String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();

    public static void main(String[] args) {
        for (String row : table) {

            String[] splitString = row.split(" ");

            if (map.containsKey(splitString[0])) {
                map.get(splitString[0]).add(splitString[1]);
            }
            else {
                ArrayList<String> newList = new ArrayList<String>();    
                newList.add(splitString[1]);

                map.put(splitString[0], newList);
            }
        }
    }
}
于 2013-08-01T16:52:36.427 回答
0

Java 没有内置的多地图功能,这正是您想要的。您可以制作一个自定义映射,当您添加一个键值集时,{"hello", "world"}它会首先检查是否已经有一个“hello”键。如果没有“hello”键,则添加一个新键,然后{hello, List<String>}将“world”添加到映射列表中。否则,它只会将“world”添加到映射到“hello”的列表中。

您可以阅读有关如何使用地图甚至如何从以下位置获取 mutlimap 功能的更多信息:

http://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

于 2013-08-01T17:07:00.517 回答