我有一个 RSS 提要,我在其中获取日期和新闻描述,我想添加以某种方式排列它,同一日期包含当天的新闻。例如,
date 1 - my news 1
- my news 2
- my news 3
在核心 Java 中,您可以使用列表映射:
Map<String, List<String>> map = new HashMap<String, List<String>>();
List<String> list1 = new ArrayList<String>();
list1.add("my news 1");
list1.add("my news 2");
list1.add("my news 3");
map.put("date 1", list1);
如果你可以使用外部库,Guava 有一个Multimap概念,它也可以这样做,并且在 Android 上运行良好。
尝试这样的事情:
HashMap map = new HashMap();
//first list
List list = new ArrayList();
list.add("orange");
list.add("apple");
list.add("banana");
list.add("coconut");
map.put("fruits", list);
//seconds list
list = new ArrayList();
list.add("volvo");
list.add("saab");
list.add("honda");
list.add("toyota");
map.put("cars", list);
等等...
//to get from map
List fruits = (ArrayList)map.get("fruits");
List cars = (ArrayList)map.get("cars");
试试谷歌的番石榴库(你可以在安卓上使用它)。该库包含许多有用的数据结构,例如 multimap(您可以查看带有数组列表后端的多图)http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/ArrayListMultimap .html):
map.put("date 1", "my news 1")
map.put("date 1", "my news 2")
map.put("date 1", "my news 3")
map.put("date 1", "my news 4")
List<String> news = map.get("date 1")