0

我有一个 RSS 提要,我在其中获取日期和新闻描述,我想添加以某种方式排列它,同一日期包含当天的新闻。例如,

date 1 - my news 1
       - my news 2
       - my news 3
4

3 回答 3

5

在核心 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 上运行良好

于 2012-05-11T09:44:13.833 回答
2

尝试这样的事情:

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");  
于 2012-05-11T09:46:05.423 回答
2

试试谷歌的番石榴库(你可以在安卓上使用它)。该库包含许多有用的数据结构,例如 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") 
于 2012-05-11T10:01:16.320 回答