0

ハッシュマップのサンプルデータストアは、

例 {"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 の組み合わせ値が繰り返されるため、キーは一意になりますが、キーは一意になります。

複数のクライアントを処理するための問題、

ユーザーごとに、接続中に別のスレッドが作成されるため、すべてのスレッドが Arraylist に追加される PrintWriter オブジェクトを作成します。

リストライター = new ArrayList();

とにかく、client_id を Printwriter オブジェクトと一緒に同じ配列に格納し、データをクライアントに渡しながら、上記の例の Hashmap に格納されているクライアント ID でデータをフィルター処理できます。

返信/提案をしてください

ありがとう、プラビーンT

4

2 に答える 2

0

要素のペアを格納するコレクションを使用できます。これを行うためのラウンド アバウトな方法は、Map を使用することです。

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

これらを使用してループできます

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

一度に1つのclientIdを取得できるようにしたい場合は、使用できます

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

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

プリンターとクライアントは一意であるため、セット (ID の重複なし) または HashMap を取得して、次のように管理します。

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

私が何かを誤解している場合はお知らせください。

于 2012-07-06T11:43:51.420 に答える