Java存储和列出Json项目

时间:2014-08-08 14:25:12

标签: java json arraylist

我有一个回调函数,这个函数像这样返回Json

{"user":"user1","message":"test message"}

...

{"user":"user2","message":"test message 2"}

...

我想将这些消息存储在一个ArrayList中,但我希望用户将它们分开,我会在另一个片段中列出消息。

示例:

  

用户点击user1,代码列出来自user1的消息   用户单击user2,代码列出来自user2的消息。

如何按用户存储此消息并按用户在Java中列出?

3 个答案:

答案 0 :(得分:0)

您可以使用地图。

Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
ArrayList<String> messages1 = new ArrayList<String>();
messages1.add("message11");
messages1.add("message12");
map.put("user1", messages1);

等等。

然后,如果你这样做:

ArrayList<String> messagesOfUser1 = map.get("user1");

您将收到user1的所有消息。

答案 1 :(得分:0)

解决方案是使用Hashtable。在Hashtable中,您可以存储键值对,因此存储用户和消息列表,并从用户名中获取该列表。

示例:

Hashtable<String, List<String>> table = new Hashtable<>();
table.put("user01", Arrays.asList("message01", "message02"));
table.put("user02", Arrays.asList("message03", "message07", "messageABC"));

如果您想要从某个特定用户那里获取消息,请使用:

public List<String> getMessages (String user)
{
    return table.get(user);
}

如果用户不存在,则上述功能将返回null

编辑:以下是Hashtable的更通用示例:

// Create your Hashtable
Hashtable<String, List<String>> table = new Hashtable<>();

// First, add the user with an empty List to your Hashtable
table.put("user", new ArrayList<String>());

// Now, add messages to the user
table.get("user").add("message 01");
table.get("user").add("message 02");

// Print all messages from the user
String user = "user";
System.out.println("Messages from user \""+user+"\": "+table.get(user));

答案 2 :(得分:-1)

你可以实现如下:

 Map<String, ArrayList<String>> userMessage = new HashMap<String, ArrayList<String>>();

ArrayList<String> messageList = new ArrayList<String>();
messageList.add("message1");
messageList.add("message2");

userMessage.put("user1", messageList);

messageList = new ArrayList<String>();
messageList.add("message1");
messageList.add("message2");

userMessage.put("user2", messageList);

它可能对你有帮助。