我的数据结构如下
Country,StateID1 where StateID1 contains "City1","City2","City3" etc
Country,StateID2 where StateID2 contains "City1","City2","City3" etc
我知道我不能使用HashMap来实现上述数据结构,因为如果我将StateID2添加到同一个国家,则StateID1将被StateID2替换 例如
map.put("1","1111");
map.put("1","2222");
output
key:value
1:2222`
我很难弄清楚如何做到这一点。我需要你们的支持
答案 0 :(得分:1)
您需要一些包装对象来存储您的状态&#39;数据。然后你可以有这样的结构:Map<String, List<StateBean>>
。这样您就可以处理每个国家/地区的州名单。
如果数据只是字符串使用Map<String, List<String>>
答案 1 :(得分:1)
You can have a Map<String, Set<String>>.
答案 2 :(得分:1)
将StationIDs
存储在ArrayList
对象中,并使用键值对在HashMap
中添加这些对象..其中key是针对StationId ArrayList
对象的国家/地区
StateID1 = ["City1","City2"] // ArrayList
StateID2 = ["City1","City2"]
答案 3 :(得分:1)
我们可以将地图设为国家/地区,ListOfStates
ListOfStates 可以是包含 StateIds
的列表或StateIds为Map,其中StateId为关键,城市列为值
答案 4 :(得分:0)
使用can Data Structure map&lt;字符串,矢量&lt;字符串&gt;&gt; ,地图&lt; T类,矢量&lt; U类&gt; &GT;
答案 5 :(得分:0)
您可以为此创建class
。
class YourClass
{
String country;
State state;
}
class State
{
Set<String> cities;
}
然后,您可以将此class
用作数据结构。你真的不需要使用Collections框架。
或强>
如果您确实想要使用收藏集进行操作,那么您可以将Country
和StateId
组合使用key
,将城市列表组合为value
在Map
中。例如:
String country = "1";
String state = "1";
String separator = "-" // You could use any separator
String key = country + separator + state;
Set<String> cities = new HashSet<String>();
cities.add("1");
cities.add("2");
Map<String, Set<String>> map = new HashMap<>();
map.put(key, cities);
因此,key
为1-1
,价值为12
。