有两种方法,先看第一种。 思路:
new一个新集合。遍历第一个集合,获取得到每一个元素。用第一个集合取出的元素去新集合里面看,如果有就不管,没有就加入新集合。遍历新集合。 import java.util.ArrayList; public class Test{ public static void main(String[] args){ List<String> strs=new ArrayList<String>(); strs.add("aaa"); strs.add("bbb"); strs.add("ccc"); strs.add("aaa"); strs.add("bbb"); strs.add("aaa"); strs.add("bbb"); List<String> strsnew=new ArrayList<String>(); Iterator it =strs.iterator(); //调用迭代器遍历第一个集合。 while(it.hasNext()){ String str =it.next(); if(!strsnew.contains(str)){ //如果新集合中没有str这个元素。则加入新集合。 strsnew.add(str); } } for(String s:strsnew){ System.out.println(s); } } }第二种方法 不创建新集合,去除字符串的重复值。 思路:
用一个双重循环,第一轮第一个和后面元素依次比较是否相同。相同就移除,不同就不管。 public class Demo{ public static void main(String[] args){ List<String> strs=new ArrayList<String>(); strs.add("aaa"); strs.add("bbb"); strs.add("ccc"); strs.add("aaa"); strs.add("bbb"); strs.add("aaa"); strs.add("bbb"); for(int i=0;i<strs.size();i++){ //轮数 for(int j=i+1;j<strs.size();j++){ //比较次数 if(strs.get(i).equals(strs.get(j))){ //判断集合元素是否相同,相同则移除。 strs.remove(j); j--; //这里减一是因为集合元素移除之后会自动降位。 } } } for(String s:strs){ System.out.println(s); } } }