0

hashmap 中的样本数据存储为 ,

例如 {"client1-data1":data1,"client2-data2":data2,"client3-data3":data3,"client4-data4":data4,"client1-data2":data2,"client2-data1":data1, “client3-data4”:data4,“client4-data3”:data3}

每个其他客户端的每个数据都可以重复,键将是唯一的,因为 client1-data1 组合值将重复但键将是唯一的。

处理多个客户的问题,

对于每个用户,在建立连接时会创建一个不同的线程,因此每个线程都会创建一个 PrintWriter 对象,该对象将被添加到 Arraylist

列表编写者 = new ArrayList();

无论如何,我可以将 client_id 与 Printwriter 对象一起存储在同一个数组中,并将数据传递给客户端,同时使用上面示例中存储在 Hashmap 中的客户端 ID 过滤数据。

请回复/建议

谢谢, 普拉文 T

4

2 回答 2

0

您可以使用存储一对元素的集合。这样做的一种方法是使用地图。

Map<PrintWriter, String> writeAndClientId = new HashMap<>();

您可以循环使用这些

for(Map.Entry<PrintWriter, String> entry: writeAndClientId.entrySet())

如果您希望能够一次获得一个 clientId,您可以使用

Map<String, PrintWriter> clientIdToWriter = new HashMap<>();

PrintWriter pw = clientIdToWriter.get(clientId);
于 2012-07-06T11:34:05.957 回答
0

打印机和客户端是唯一的,因此请使用 Set(无重复 ID)或 HashMap 并管理如下内容:

final HashMap<Writer, HashMap<Integer, List<String>>> writers = new HashMap<Writer, HashMap<Integer, List<String>>>();

如果我误解了什么,请告诉我们。

于 2012-07-06T11:43:51.420 回答