有没有一个很好的理由为什么Pair<L,R>Java中没有?这个C++构造的等价物是什么?我宁愿避免重新实现自己.
似乎1.6提供类似的东西(AbstractMap.SimpleEntry<K,V>),但这看起来很复杂.
我喜欢Java有一个Map,你可以在其中定义地图中每个条目的类型<String, Integer>.
我正在寻找的是一种集合,其中集合中的每个元素都是一对值.对中的每个值都可以有自己的类型(如上面的String和Integer示例),它是在声明时定义的.
该集合将保持其给定的顺序,并且不会将其中一个值视为唯一键(如在地图中).
基本上我希望能够定义类型的ARRAY <String,Integer>或任何其他2种类型.
我意识到我可以创建一个只有2个变量的类,但这看起来过于冗长.
我也意识到我可以使用2D数组,但由于我需要使用不同的类型,我必须使它们成为OBJECT数组,然后我必须一直投射.
我只需要在集合中存储对,所以每个条目只需要两个值.如果没有上课路线,这样的事情会存在吗?谢谢!
我想从Java方法返回两个对象,并想知道这样做的好方法是什么?
我能想到的可能的方法是:返回HashMap(因为这两个对象是相关的),或者返回ArrayList的Object对象.
更确切地说,我想要返回的两个对象是(a)List对象和(b)逗号分隔的对象.
我想从一个方法返回这两个对象,因为我不想遍历对象列表以获取逗号分隔的名称(我可以在此方法的同一循环中执行).
不知何故,返回a HashMap看起来并不是一种非常优雅的方式.
该MultiValueMap类(Apache的公共集合)可以很容易地与地图,其值是集合工作.我正在寻找一个类,它可以很容易地使用Map,其键是对象,值是Maps.
我使用的是Java 1.4,因此无法使用Google Collections或泛型.
我在第4行收到错误说:cvc-complex-type.2.4.d:从元素'map'开始发现无效内容.此时不会有子元素.
<util:map id="entirePayTypesMap">
<entry key="34">
<value>
<map>
<entry key="default">
<value>
<map key-type="java.lang.Boolean">
<entry key="true" value="3T" />
<entry key="false" value="3U" />
</map>
</value>
</entry>
</map>
</value>
</entry>
</util:map>
Run Code Online (Sandbox Code Playgroud)
有什么建议?
这是Pair.java
import java.lang.*;
import java.util.*;
public class Pair<TYPEA, TYPEB> implements Comparable< Pair<TYPEA, TYPEB> > {
protected final TYPEA Key_;
protected final TYPEB Value_;
public Pair(TYPEA key, TYPEB value) {
Key_ = key;
Value_ = value;
}
public TYPEA getKey() {
return Key_;
}
public TYPEB getValue() {
return Value_;
}
public String toString() {
System.out.println("in toString()");
StringBuffer buff = new StringBuffer();
buff.append("Key: ");
buff.append(Key_);
buff.append("\tValue: ");
buff.append(Value_);
return(buff.toString() );
}
public int compareTo( Pair<TYPEA, TYPEB> p1 ) {
System.out.println("in compareTo()"); …Run Code Online (Sandbox Code Playgroud) 例如,您如何申报三重地图,如:
Map<String, Map<String, Map<Boolean, String>>>, with the keys being someKey1, someKey2, and someKey3 (true/false)?
Run Code Online (Sandbox Code Playgroud)
我知道,直到这个 -
<util:map
id="someMap"
map-class="java.util.HashMap"
key-type="java.lang.String"
value-type="java.lang.String">
<entry key="someKey1" value="someValue" />
</util:map>
Run Code Online (Sandbox Code Playgroud)
编辑:
好的,这就是我想要减少大量的if语句.
123: //some key 1
abc: //some key 2
true: //some key 3
a //some value
false: //some key 3
b //some value
456:
def:
true:
c
false:
d
Run Code Online (Sandbox Code Playgroud)
谢谢一堆.