2012-07-05 30 views
2

是否可以執行以下操作?內部有兩個對象的Java列表:List <Object o,Object p>

List<Object o, Object p> listWithTwoObjects; 

我想從數據庫中檢索數據,並將其保存到這個列表,具體以這種方式

Query query = "retrieve all posts and username, which this user posted"; 
List<Object o, Object p> userAndPost = query.getResultList(); 

o是用戶名,並p是後。然後,我可以將其呈現給我的模板,並顯示每個帖子與其用戶。

我的問題是關於裏面有兩個對象的列表。是否有可能,如果是的話,該文檔的文檔如何以及在哪裏?

回答

15

可以定義一個Pair類,如下所示:

public class Pair 
{ 
    String username; 
    int post; 

    public Pair(String username, int post) 
    { 
     this.username = username; 
     this.post = post; 
    } 
} 

,然後簡單地使用List<Pair>,例如:

List<Pair> pairs = new ArrayList<Pair>(); 
pairs.add(new Pair("doniyor", 12345)); 

// ... 

Pair p = pairs.get(0); 
System.out.pritnln(p.username); // doniyor 
System.out.pritnln(p.post); // 12345 
+1

甚至更​​好,他們的名字'userName'和'post' – Keppil 2012-07-05 08:56:32

+0

如果我使這對我作爲一個JSON模板,那麼它會是這樣的: ''[「用戶名1」:「POST1」,「USERNAME2 「:」post2「,」username3「:」post3「]''對吧? – doniyor 2012-07-05 08:59:14

+0

您可以通過 對 { K key; V值; public K getKey(){ return key; } public V getValue(){ return value; } } 這樣,您可以在更大程度上重用您的課程。 – sbrattla 2012-07-05 09:00:47

1

如果我正確理解你想有一個用戶的所有帖子,所以不要使用列表,而應使用Map:

Map<String,List<Post>> map = new HashMap<String,List<Post>>(); 

Th en,key(String)將是userName,值將是Post對象的列表。

+0

如果我把它作爲json呈現給我的模板,那麼它看起來像這樣: ''[「username1」:「post1」,「username2」:「post2」,「username3」:「post3」]'',對吧? – doniyor 2012-07-05 09:01:21

+1

Moreley like like:[{「username1」:{「post1」,「post2」},「username2」:{「post1」,「post2」}] – Tomer 2012-07-05 09:08:36

+0

oh okay thats great .. – doniyor 2012-07-05 09:29:58

1

你不能像這樣定義一個列表,但是你可以使用一個Map,其中用戶名作爲鍵並且作爲值發佈。還是有一個特別的理由來使用列表?

相關問題