我想要一些方法来配对String
值并将其作为数据结构传递。有什么建议? Map
会有效吗?我对Map
的问题是,并非所有字符串都会在此上下文中配对,只有少数字符串配对。我需要拥有所有字符串,如果存在字符串,它也是字符串对。如果有什么不清楚,请告诉我。
答案 0 :(得分:1)
可以使用Map
,其中包含没有对的字符串的特殊值。
答案 1 :(得分:1)
嗯,这可能不是最好的方法,但我有时使用的是一种类似于Python元组的双工类型结构。
我构建了一个类似的通用结构:
class Duplex<T,T> {
private T item1, item2;
public Duplex(T one){
item1 = one;
}
public Duplex(T one, T two){
item1 = one;
item2 = two;
}
//Getters + Accessors
}
不必是通用的,但它允许您在其他情况下重复使用它。
我之前没有使用地图,所以那些可能实际上更好。
答案 2 :(得分:0)
地图会为您提供所需的键值配对。你可能想要的是这样的:
class MyPair
{
String first;
String second;
// Equals and Hashcode
}
现在由您决定MyPair
班级的内部参数
地图配对=新的HashMap();
答案 3 :(得分:0)
由于你的大部分元素都是一个字符串,我建议你把你的字符串转换成字符串。
public static final String SEP = "\uFFFF"; // not a valid character by definition.
public static String pair(String a, String b) {
return a + SEP + b;
}
public static String[] split(String str) {
return str.split(SEP);
}
答案 4 :(得分:0)
一种直接的方法是使用数组。
List<String[]> pairs = new ArrayList<String[]>();
...
pairs.add(new String[]{"first", "second"});
pairs.add(new String[]{"pairless"});
或者使用您想要的任何容器,List
这里只是一个示例,点是String[]
。
注意:使用普通数组有点“快而脏”,创建自定义“配对”类更“合适”。特别是如果你有对sigle对进行操作的方法,那么创建一个包含它们的类是有意义的。在该类中,您仍然可以在内部使用这种数组来存储1或2个(或其他一些数量的)项目。