去除集合中字符串的重复值(字符串的内容相同)

去除集合中字符串的重复值

有两种方法,先看第一种。
思路:

  1. new一个新集合。
  2. 遍历第一个集合,获取得到每一个元素。
  3. 用第一个集合取出的元素去新集合里面看,如果有就不管,没有就加入新集合。
  4. 遍历新集合。
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);
		}
	}
}

第二种方法
不创建新集合,去除字符串的重复值。
思路:

  1. 用一个双重循环,第一轮第一个和后面元素依次比较是否相同。
  2. 相同就移除,不同就不管。
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);
		}
	}
}
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页