list為繼承自collection接口的接口,list里存儲的值的類型通過list<object>泛型來聲明;存值時調用ArrayList類的add方法,刪除時調用用remove方法。list的很多方法與set很相似,但在存儲結構上有區別,set的存儲特點為無序和互異,相反的,list的存儲特點為有序和存異。
package test_list; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; /** * @author Qiaofengbo * @time 2014年7月21日 */ public class Test_list { static List<String> lists1 = new ArrayList<String>(); static Set<String> sets1 = new HashSet<>(); public static void main(String args[]){ save_to_list(); bianli_lists1(); // bianli_lists1_iterator(); loadElementsToSet(lists1); bianli_sets1(); } /** * 往list里面存儲值 */ public static void save_to_list(){ lists1.add("1"); lists1.add("2"); lists1.add("3"); lists1.add(""); lists1.add("3"); lists1.add("4"); lists1.add("3"); lists1.add(""); lists1.add("4"); } /** * 遍歷list */ public static void bianli_lists1(){ for(String l1 : lists1){ System.out.print(l1+"\t"); } System.out.print("\n"); } /** * 使用iterator遍歷list */ public static void bianli_lists1_iterator(){ Iterator<String> ite = lists1.iterator(); while(ite.hasNext()){ System.out.print(ite.next()+"\t"); } } /** * 把list里面的值裝載道set中 */ public static Set<String> loadElementsToSet(List<String> list){ for(int i = 0; i < list.size(); i++){ for(int j = i+1; j < list.size(); j++){ if(list.get(i).equals(list.get(j))){ sets1.add(list.get(i)); continue; } } } return sets1; } /** * 遍歷set */ public static void bianli_sets1(){ for(String s1 : sets1){ System.out.print(s1+"\t"); } } }
面試題:
找出list中重復的元素?
分析:因為不知道list里面重復的元素的重復次數,所以,此處利用set容器互異性的特征,把list里面重復的元素放到set容器中,最后遍歷set容器,找出list里面重復的元素。如方法loadElementsToSet和sets1所示