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 Listlists1 = new ArrayList (); static Set 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 ite = lists1.iterator(); while(ite.hasNext()){ System.out.print(ite.next()+"\t"); } } /** * 把list里面的值装载道set中 */ public static Set loadElementsToSet(List 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所示