我想转换两个字符串的表
到 MAP<'String, ArrayList<'String>>
示例:我得到一张这样的表
hello world
hi mom
hi doug
hello dad
我想在这样的地图中转换它
hello, {world,dad,mom}
hi, {mom,doug}
非常感谢您的帮助:)我很失望^^
我想转换两个字符串的表
到 MAP<'String, ArrayList<'String>>
示例:我得到一张这样的表
hello world
hi mom
hi doug
hello dad
我想在这样的地图中转换它
hello, {world,dad,mom}
hi, {mom,doug}
非常感谢您的帮助:)我很失望^^
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);
}
初始化 a Map<String, List<String>>
,调用它map
循环遍历您的表格k
,v
条目和...
如果k
不是映射中的键,则将条目映射添加k
到包含的新列表v
如果k
是键,则添加v
到列表中map.get(k)
你需要的是这个;
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));
}
}
}
输出: [妈妈,世界,爸爸]
让我知道它是否有帮助,或者您有任何问题。
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 }
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);
}
}
}
}
Java 没有内置的多地图功能,这正是您想要的。您可以制作一个自定义映射,当您添加一个键值集时,{"hello", "world"}
它会首先检查是否已经有一个“hello”键。如果没有“hello”键,则添加一个新键,然后{hello, List<String>}
将“world”添加到映射列表中。否则,它只会将“world”添加到映射到“hello”的列表中。
您可以阅读有关如何使用地图甚至如何从以下位置获取 mutlimap 功能的更多信息:
http://docs.oracle.com/javase/tutorial/collections/interfaces/map.html