hashmap中的示例数据存储为,
e.g。 { “客户端1-DATA1”:DATA1, “客户端2-DATA2”:DATA2 “client3-DATA3”:DATA3 “client4-DATA4”:DATA4, “客户端1-DATA2”:DATA2, “客户端2-DATA1”:DATA1,” client3-DATA4 “:DATA4,” client4-DATA3" :DATA3}
每个客户都可以重复每个数据,密钥将是唯一的,因为client1-data1组合值将重复,但密钥将是唯一的。
处理多个客户的问题,
对于每个用户,在建立连接时会创建一个不同的线程,因此每个线程都会创建一个PrintWriter对象,该对象将被添加到Arraylist中
List writers = new ArrayList();
无论如何,我可以将client_id与Printwriter对象一起存储在同一个数组中,并将数据传递给客户端,同时使用上面示例中存储在Hashmap中的客户端ID过滤数据。
请回复/建议
感谢, Praveen T
答案 0 :(得分:0)
您可以使用存储一对元素的集合。关于这样做的一个方法是使用Map。
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);
答案 1 :(得分:0)
打印机和客户端是唯一的,因此请使用Set(无重复ID)或HashMap并管理以下内容:
final HashMap<Writer, HashMap<Integer, List<String>>> writers = new HashMap<Writer, HashMap<Integer, List<String>>>();
如果我误解了某些内容,请告诉我们。