[解決済み] 値のペアのJavaコレクション?(タプル?)
2022-03-25 19:54:56
質問
Javaにはマップがあり、マップの各エントリーの型を定義できるのがいいですね。
<String, Integer>
.
私が求めているのは、コレクションの各要素が値のペアであるようなタイプだ。 ペアの各値は、宣言時に定義される独自の型(上記のStringとIntegerの例のように)を持つことができます。
コレクションは与えられた順序を維持し、(マップのように)値の1つをユニークキーとして扱わない。
基本的に、私は以下のようなタイプのARRAYを定義したい。
<String,Integer>
または他の2つのタイプ。
2つの変数以外何もないクラスを作ることもできますが、それは冗長すぎるように思います。
また、2次元の配列を使うこともできますが、さまざまな型を使用する必要があるため、OBJECTの配列にする必要があり、その場合、常にキャストする必要があります。
コレクションに保存するのはペアだけなので、1つのエントリに2つの値だけでいいんです。 このようなものは、クラスを使用せずに存在するのでしょうか? ありがとうございます。
どのように解決するのですか?
Pair クラスは、自分で書くのが簡単なジェネリックの例の一つです。例えば、私の頭の上から。
public class Pair<L,R> {
private final L left;
private final R right;
public Pair(L left, R right) {
assert left != null;
assert right != null;
this.left = left;
this.right = right;
}
public L getLeft() { return left; }
public R getRight() { return right; }
@Override
public int hashCode() { return left.hashCode() ^ right.hashCode(); }
@Override
public boolean equals(Object o) {
if (!(o instanceof Pair)) return false;
Pair pairo = (Pair) o;
return this.left.equals(pairo.getLeft()) &&
this.right.equals(pairo.getRight());
}
}
そして、そう、これはネット上の複数の場所に、完成度や機能の差こそあれ、存在しているのです。 (上の私の例は、不変であることを意図しています)。
関連
-
プロジェクトの依存関係を解決できなかった 解決
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
Java Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
javaの実行中に「javaの例外が発生しました」と表示された場合はどうすればよいですか?
-
ファインバグタイプ
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
[解決済み] JavaでC++のPair<L,R>に相当するものは何ですか?
-
[解決済み] JavaでPairsや2-tupleを使う [重複]。
-
[解決済み】JavaのKeyValuePair【重複あり