2011-06-10 61 views
1

是有型有保存價值如何存儲這個值

 <string,string,int> 

如果我使用Namedlist(SOLR)是,列出它可以實現嗎?如果是的話如何使用。

還有其他方法嗎?

例如:

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

我你爲什麼不創建這些數據類型的類撰寫需要這在java中

在此先感謝

+2

不,但你可以自己寫。 – mdm 2011-06-10 09:42:03

回答

4

例子:

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

    // Getters and Setters goes here. 
} 

現在,我們可以在列表中使用這個類。

List<MyObject> list; 
+2

更好 - 提供一個構造函數來設置數據類型(而不是setter)並使它們成爲'final'。幾乎沒有理由讓這樣的小對象變得可變。 – 2011-06-10 09:57:36

+0

你能說怎麼做..對不起..我是新來做這個..請提供一個示例示例...感謝所有 – 2011-06-10 10:19:35

+0

可以請提供示例 – 2011-06-10 10:35:40

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")); 
0

恕我直言,這取決於你如何使用它。例如,如果你總是會爲代碼,當你有國+標誌(反之亦然),這讓SENCE到組縣城+標誌:

Map<Map<String,String>,Integer> myMap... 
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(); 
} 

這允許通過主鍵進行搜索。並且使得像代碼鏈接到位置常量那樣不變。覆蓋界面將允許放置不同的枚舉常量/對象。

+0

爲什麼'@ Override'的getCode(),它只是一個接口的實現? – Thor 2011-06-10 10:08:17

+1

如果有人從界面中刪除這個方法,我會得到編譯錯誤,並考慮從我的實現中刪除它。 – teodozjan 2011-06-10 10:21:33

+0

啊,明白了!謝謝。 – Thor 2011-06-10 10:23:34