我有兩個不同大小的ArrayList。Java - 從兩個不同數據類型的ArrayList獲取通用元素
ArrayList<String> names = new ArrayList<String>();
ArrayList<User> users = new ArrayList<User>();
用戶是具有屬性名稱和地址的對象。我想獲取ArrayList用戶存儲的User對象的名稱與存儲在ArrayList名稱中的名稱相同的地址。
這可能嗎?如果是這樣,怎麼樣?
我有兩個不同大小的ArrayList。Java - 從兩個不同數據類型的ArrayList獲取通用元素
ArrayList<String> names = new ArrayList<String>();
ArrayList<User> users = new ArrayList<User>();
用戶是具有屬性名稱和地址的對象。我想獲取ArrayList用戶存儲的User對象的名稱與存儲在ArrayList名稱中的名稱相同的地址。
這可能嗎?如果是這樣,怎麼樣?
for (User u : users) {
if (names.contains(u.getName()) {
System.out.println("Name: " + u.getName() + ", address: " + u.getAddress());
}
}
您需要遍歷用戶列表並檢查每個元素是否包含在名稱中。如果您有很多元素,您可能需要使用Set而不是名稱列表。
如果你遍歷與names.contains(..)
內部的用戶,你正在做一個N^2環(近似地說)。
我會將用戶地址放入地圖中,按名稱鍵入,然後遍歷名稱列表,將地址拉出地圖。代價2n(大致)。
+1實際上_showing_一種方法做到這一點 – 2012-07-06 09:24:44
哇!你只是解決了不同尺寸和不同類型的問題,並縮短了我的非工作循環一噸!非常感謝! – consprice 2012-07-06 09:32:20
@consprice不客氣=) – 2012-07-06 09:38:00