0

为了存储以下数据,使用哪种数据结构更好?:

"open" => "11:00", "15:00", "19:00" 
"close" => "12:00", "17:00","20:00"

我需要能够通过以下方式访问数据:

dataStructure.get("open").get(0) => "11:00"
4

4 回答 4

4

听起来你需要这样的东西Map<String, List<String>>

map.get("open")将返回List<String>然后您可以使用get(index)List 的方法。

例子:

Map<String, List<String>> map = new HashMap<>();(java 7)
Map<String, List<String>> map = new HashMap<List<Stirng>>();(pre java 7)
Consider your first input:
map.get("Open").get(0); would yield 11:00
于 2013-07-24T10:49:09.880 回答
1

如果我们从现有的数据结构中使用,你可以有一个像这样的地图..

  Map<String,List<String>> myMap=new HashMap<String,List<String>>();              

  List<String> openList=new ArrayList<String>();       
  openList.add("11:00");       
  openList.add("15:00");                        
  openList.add("19:00");                 

  List<String> closeList=new ArrayList<String>();                     
  closeList.add("12:00");                     
  closeList.add("17:00");            
  closeList.add("20:00");                       

  myMap.put("open",openList);                       
  myMap.put("close",closeList);                 
于 2013-07-24T10:59:25.867 回答
1

基本上你可以使用带有参数 String 和 list 的 Map 来存储上述内容.. 这里 list 将存储子值的数量......

Map map = new HashMap<String,list>

List list = map.get("key")
list.get(0) // will give the 0th value
于 2013-07-24T10:50:06.937 回答
0

为什么不直接使用字符串数组并使用 open[0]、open[1] 等?对于关闭字符串的数组也是如此。

于 2013-07-25T05:59:51.580 回答