2012-07-06 53 views
2

我有兩個不同大小的ArrayList。Java - 從兩個不同數據類型的ArrayList獲取通用元素

ArrayList<String> names = new ArrayList<String>(); 
ArrayList<User> users = new ArrayList<User>(); 

用戶是具有屬性名稱和地址的對象。我想獲取ArrayList用戶存儲的User對象的名稱與存儲在ArrayList名稱中的名稱相同的地址。

這可能嗎?如果是這樣,怎麼樣?

回答

4
for (User u : users) { 
    if (names.contains(u.getName()) { 
    System.out.println("Name: " + u.getName() + ", address: " + u.getAddress()); 
    } 
} 
+0

+1實際上_showing_一種方法做到這一點 – 2012-07-06 09:24:44

+0

哇!你只是解決了不同尺寸和不同類型的問題,並縮短了我的非工作循環一噸!非常感謝! – consprice 2012-07-06 09:32:20

+0

@consprice不客氣=) – 2012-07-06 09:38:00

0

您需要遍歷用戶列表並檢查每個元素是否包含在名稱中。如果您有很多元素,您可能需要使用Set而不是名稱列表。

0

如果你遍歷與names.contains(..)內部的用戶,你正在做一個N^2環(近似地說)。

我會將用戶地址放入地圖中,按名稱鍵入,然後遍歷名稱列表,將地址拉出地圖。代價2n(大致)。

相關問題