我不确定如何说出问题。
让我们说,我们有一个词。
这个词将成为关键,这个键将有3个ArrayList。这可能吗?如果是这样,我该怎么做?
键|值
1 -ArrayList1
-ArrayList2
-ArrayList3
2 -ArrayList1
-ArrayList2
-ArrayList3
3 -ArrayList1
-ArrayList2
-ArrayList3
4 ......
好的,所以我要做的就是有一个与之相似的词。我想将这些分成不同的数组列表。
让我们说,关键是树 一个人的名单 清单1 tee,tre .... 清单2 tred,trid ...... 列出3棵树,treen ......
希望这是有道理的。 此外,我觉得这是一个愚蠢的方式来做到这一点。有没有更好的方法来做到这一点?
答案 0 :(得分:4)
你可以制作这样的怪物
Map<String,List<List<String>> hugeMap = new HashMap<>();
hugeMap.get("anyKey").get(0)
hugeMap.get("anyKey").get(1)
hugeMap.get("anyKey").get(2)
或者你可以通过创建一个包含三个arraylist的类来做得更好。
e.g。
class MyNewClass{
List<String> list1;
List<String> list2;
List<String> list3;
}
然后你的地图就像这样
Map<String, MyNewClass> stillHugeMap = new HashMap<>();
stillHugeMap.get("anyKey").list1
stillHugeMap.get("anyKey").list2
stillHugeMap.get("anyKey").list3
答案 1 :(得分:1)
是的,你可以。但是你需要一个容器。
Map<String, Set<ArrayList<Object>> myMap = new HashMap<>();
Set<ArrayList<Object>> value1 = new HashSet<>();
value1.add(arrayList1);
value1.add(arrayList2);
myMap.put("1", value1);
答案 2 :(得分:0)
地图每个键可以有一个值。这意味着对于每个键,您需要一个包含这三个列表的包装器对象。
但我认为你应该从解释你真正需要的东西开始。
答案 3 :(得分:0)
有一个@echo off
setlocal EnableDelayedExpansion
set myvar=hello^
world
echo !myvar!
,其中数组的大小始终为3。
答案 4 :(得分:0)
试试这个。
gettimeofday()
后者@Getter
public class ListHolder<ONE, TWO, THREE> {
private List<ONE> one = Lists.newArrayList();
private List<TWO> two = Lists.newArrayList();
private List<THREE> three = Lists.newArrayList();
}
Map<String, ListHolder<String, Integer, Object>> map = Maps.newHashMap();
我使用GoogleGuave来判断代码大小。