不使用集合的Java键值对
如何在不使用Java集合的情况下管理HashMap中的键值对 我发现了这个(来自Commons Lang的结对类)不使用集合的Java键值对,java,collections,Java,Collections,如何在不使用Java集合的情况下管理HashMap中的键值对 我发现了这个(来自Commons Lang的结对类) Pair keyValue=新的不可变对(“键”、“值”); 这是处理问题的唯一方法吗?还是有其他的处理方法 就个人而言,我不喜欢,我喜欢内置的收藏 话虽如此 如果您想要性能更好/内存更小的东西,请查看。它们有消除额外条目(键值对)类的映射实现。如果您的键或值是基元(例如,int),则它们特别好 如果您想要更好的可预测性(另一个性能方面),请查看。他们的collections类
Pair keyValue=新的不可变对(“键”、“值”);
这是处理问题的唯一方法吗?还是有其他的处理方法 就个人而言,我不喜欢,我喜欢内置的收藏 话虽如此
- 如果您想要性能更好/内存更小的东西,请查看。它们有消除额外条目(键值对)类的映射实现。如果您的键或值是基元(例如,int),则它们特别好
- 如果您想要更好的可预测性(另一个性能方面),请查看。他们的collections类提供了更好的最坏情况时间(想想当您向标准集合中插入某个内容并触发了调整大小…)
- 如果您正在寻找具有更多功能的collections类,请查看
Map
不是集合
,因此如果您不喜欢java集合,请使用HashMap
尝试泛型并创建自己的类:
public class Pair<K, V> {
private K key;
private V value;
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return key;
}
public void setKey(K key) {
this.key = key;
}
public V getValue() {
return value;
}
public void setValue(V value) {
this.value = value;
}
public static void main(String[] args) {
Pair<String, String> pair = new Pair<String, String>("key", "value");
System.out.println(pair.getKey());
System.out.println(pair.getValue());
}
}
公共类对{
私钥;
私人价值;
公共对(K键,V值){
this.key=key;
这个值=值;
}
公共K getKey(){
返回键;
}
公共无效设置密钥(K密钥){
this.key=key;
}
public V getValue(){
返回值;
}
公共无效设置值(V值){
这个值=值;
}
公共静态void main(字符串[]args){
配对=新配对(“键”、“值”);
System.out.println(pair.getKey());
System.out.println(pair.getValue());
}
}
您想要实现什么目标?这把钥匙怎么用?你为什么不想使用Java的类呢?你可以使用对的列表,然后在列表上实现一些查找逻辑。你可以编写自己的类,可以使用其他对类型的类,可以使用列表
甚至字符串[]
。。。有很多方法可以获得两个String
s。这真的取决于你的需要。@SotiriosDelimanolis:有人提出了这个问题,我很好奇。谢谢大家,我还是很困惑。您是在尝试使用类似于地图的数据结构,还是只需要对?是否要按键查询某个内容?是,技术上它不在收集中。“但一般来说,它被视为一个整体,不是吗?”你说的是山姆·沃特@Shakebayaz哪一部分你不懂?我想说的是,若你们看收藏图表,地图不属于收藏范畴,但当你们谈论收藏时,地图是其中的一部分。我错了吗?如果地图不是收藏品的一部分,那么你怎么可以在书中谈论地图呢collection@ShakeebAyaz虽然Map不是集合,但它是“集合框架”的一部分
public class Pair<K, V> {
private K key;
private V value;
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return key;
}
public void setKey(K key) {
this.key = key;
}
public V getValue() {
return value;
}
public void setValue(V value) {
this.value = value;
}
public static void main(String[] args) {
Pair<String, String> pair = new Pair<String, String>("key", "value");
System.out.println(pair.getKey());
System.out.println(pair.getValue());
}
}