私はユーザー名とノードのリストを持っています。特定のノード上のユーザー名に関する情報を保持するためのデータ構造が必要です。私はHashMap<String, ArrayList<String>
のようなものが必要ですが、私はまた、簡単に(異なる配列の束ではなく)ユーザー名リスト全体の操作を実行する必要があります。そのデータ構造が存在するか、またはArrayList
とHashMap
の2つを保持する必要がありますか?Java:2つの異なる配列から値をバインドする方法
1
A
答えて
-1
3つのプライベートフィールド(2つのリストと1つのマップ)を持つオブジェクトを作成してみませんか?ただ
public class User {
String username;
String name;
String surname;
// ...
}
次のことが可能です。
0
何かは、Javaに存在しない場合は、自分で作成しようとすることができます。
ノード:
public class Node {
List<User> users = new ArrayList<>();
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
ユーザー複雑なオブジェクトを必要としない場合はNode
にList<String> usernames
を使用してください。
その後、どこかのアプリで:これで動作
public List<User> getUsersOfNode(Node node) {
return node.getUsers();
}
がHashMap
よりも簡単です。
1
HashMap<String, ArrayList<String>
は私にとって妥当な解決策のようです。私はここにカスタム構造の必要はないと思う。
ユーザー名の操作では、.keySet()
または.entrySet()
(または任意の反復方法)を使用できます。
How to efficiently iterate over each Entry in a Mapを参照してください。
0
私はMap
を使用することについてあなたの元々の考えが好きです。私はMap
がこの問題の良いスタートになると思います。
すべてのユーザー名が一意であることが保証されていますか?もしそうなら、ユーザ名を表すのにList
の代わりにSet
を使用します。たぶんリスト内のすべてのユーザー名をSet<Usernames>
に転送してから、ノード/ユーザー名リストを反復してMap<Node, Set<Usernames>>
を生成することができます。
Set<Usernames>
とMap<Node, Set<Usernames>>
を把握することができますが、適切なデータが保存されていて、ユーザー名の設定で高速検索ができると思います。
関連する問題
- 1. Java配列を2つの異なる配列に分割し、配列に数値を追加する方法
- 2. 2つの異なる配列から値をソート
- 3. 異なる配列から2ワードをフィルタリングする方法
- 4. 2つの異なる列のパンダデータフレームから値を追加する方法
- 5. 異なる入力値から配列をマージする方法。
- 6. jQueryの異なる値から配列を作る方法
- 7. 形状の異なる2つの配列の値を掛ける方法
- 8. 2つの異なる列からFTSマッチングする方法
- 9. 2つの異なるwpfウィンドウのコントロールをバインドする方法
- 10. 2つの異なる配列リストから値を引き出しますか?
- 11. 2つの異なる配列からオブジェクトの配列を作成する
- 12. 同じリスト内の2つの異なる列から異なる値を取得する方法
- 13. 2つの異なるqmlファイルから2つの要素をバインドする
- 14. 2つの列から異なる値を得て、それを1つの列にする方法
- 15. Javaで異なるデータ型の2つの配列をソート
- 16. 2つの異なる配列の要素ごとの計算から配列を返す方法は?
- 17. ストリームでJavaの2つの異なるセパレータで文字列の配列を結合するエレガントな方法
- 18. 2つの異なるMySqlクエリから2つの異なる配列をマージする
- 19. KnockoutJS:配列から値をバインドする
- 20. 2つの異なる順序の配列を列でマージする方法
- 21. 2つの異なるデータコンテキストに2つの異なる属性をバインドする方法WPF C#
- 22. 2つのプロパティを異なる値で双方向バインドすると、どの値が取られますか?
- 23. 異なる行サイズの2つの行列をバインドする
- 24. 2つの異なる配列からのスプライトの比較
- 25. Java Swing:2つの異なるパネルにコンポーネントを配置する方法は?
- 26. Javaで2つのリスト/配列の値を引く方法は?
- 27. 方法がない2つの異なる配列を比較するには?
- 28. 2つの異なる2次元配列から重複を削除する方法
- 29. 2つの異なる配列の文字列コンポーネントを比較する方法(Java)
- 30. Pythonの2つの異なるsqlite3テーブルから値を減算する方法