如何存储此值

时间:2011-06-10 09:39:09

标签: java programming-languages solr types

是否有类型存储值

     <string,string,int>

如果我使用Namedlist(Solr),List可以实现吗?如果是这样如何使用。

还有其他方式吗?

示例:

   <"A",America,code>
   <"B",London,code>

我在java中需要这个

感谢提前

4 个答案:

答案 0 :(得分:4)

为什么不创建由这些数据类型组成的类。示例:

class MyObject
{
    int code;
    String country;
    String Flag;

    // Getters and Setters goes here.
}

现在我们可以在List中使用这个类。

List<MyObject> list;

答案 1 :(得分:1)

public class Triple<T1, T2, T3> {

 private T1 o1;
 private T2 o2; 
 private T3 o3;

 public Triple(T1 o1, T2 o2, T3 o3) {
  this.o1 = o1;
  this.o2 = o2;
  this.o3 = o3;
 }

 public void setO1(T1 o1) {
  this.o1 = o1;
 }
 public T1 getO1() {
  return o1;
 }
 public void setO2(T2 o2) {
  this.o2 = o2;
 }
 public T2 getO2() {
  return o2;
 }
 public void setO3(T3 o3) {
  this.o3 = o3;
 }
 public T3 getO3() {
  return o3;
 }
}

示例:

List<Triple<String, Integer, String>> list 
  = new ArrayList<Triple<String, Integer, String>>();
list.add(new Triple("tr1", 1, "Triple 1"));
list.add(new Triple("tr2", 2, "Triple 2"));
list.add(new Triple("tr3", 3, "Triple 3"));

答案 2 :(得分:0)

恕我直言,这取决于你将如何使用它。例如,如果您在使用country + flag时总是会查找代码(反之亦然),那么就可以将group + flag分组:

  Map<Map<String,String>,Integer> myMap...

答案 3 :(得分:0)

我会这样写:

public class App {

    public static void main(String[] args) {
        Map<String, Location> map = new HashMap<String, Location>();

        map.put("B", City.London);
    }
}

enum City implements Location {
    London(262);
    private int code;

    private City(int code) {
        this.code = code;
    }

    @Override
    public int getCode() {
        return code;
    }
}

interface Location {
     int getCode();
}

这允许按主键搜索。并使常量像代码链接到位置常量。覆盖界面将允许放置不同的枚举常量/对象。