[英]Associating two values to a single key in a java HashMap
我試圖將不同數據類型的兩個值(一個長,另一個為字符串)關聯到Java HashMap中的單個鍵。 我環顧四周,針對類似問題的建議包括使用Apache Collections Framework中的MultiValuedMap或Guava中的MultiMap。 但是,我認為這些可能會過大,而且我不想在系統中添加額外的二進制文件。
定義一個類有什么問題,例如:
class X {
long value1;
String value2;
X(long v, String w) { this.value1 = v; this.value2 = w;}
}
在插入HashMap時,請執行以下操作:
X obj = new X(1000, "abc");
map.add("key", obj)
這種方法是否有明顯的缺點? 我正在尋找一種可以在查找中很好擴展的解決方案。
謝謝!
您的方法沒有錯。 由於Java缺少元組類,因此可以通用地定義自己的類(而不是類X
):
public class Tuple<X, Y> {
public final X x;
public final Y y;
public Tuple(X x, Y y) {
this.x = x;
this.y = y;
}
}
另請參閱在Java中使用成對或2元組
用法如下:
Map<String,Tuple<Long,String>> map = new HashMap<>();
Tuple<Long,String> obj = new Tuple<>(1000L, "abc");
map.put("key", obj);
很好 您可以將任何對象存儲為Map
的值,在這種情況下,您只需使用自己的類即可包裝兩個單獨的值。
只要您不使用自定義類作為鍵,就已經完成了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.