java实现字符串去重复和对象去重复方法

一:关于简单类型去重复,例如字符串:

1.使用两个for循环,利用StringBuffer中

package 集合.list.removeRepead;

public class RemoveRepeadString {
	public static void main(String[] args) {
		String str1 = "abccdde";
		StringBuffer sb = new StringBuffer(str1);

		for (int i = 0; i < sb.length() - 1; i++) {
			for (int j = i + 1; j < sb.length(); j++) {
				if (sb.charAt(i) == sb.charAt(j)) {
					sb.deleteCharAt(j);
					j--;
				}
			}
		}
		System.out.println(sb);
	}
}

控制台输出如下:

2.把字符串每一个装到我们的List集合中,然后也是利用两个for循环,将重复的remove掉

package 集合.list.removeRepead;

import java.util.ArrayList;
import java.util.List;

public class RemoveRepeadString2 {
	public static void main(String[] args) {
		String str1 = "abccdde";
		List list = new ArrayList();

		for (int i = 0; i < str1.length(); i++) {
			list.add(str1.charAt(i));
		}
		System.out.println("目标字符串元素为:" + list);
		for (int i = 0; i < list.size() - 1; i++) {
			for (int j = i + 1; j < list.size(); j++) {
				if (list.get(i) == list.get(j)) {
					list.remove(j);
					j--;
				}
			}
		}
		System.out.println("去重复后:" + list);
	}

}

控制台输出如下:

3.利用set集合来实现

package 集合.list.removeRepead;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.junit.Test;

public class RemoveRepeadString3 {
	@Test
	public void test1() {
		String str = "abccdde";
		Set set = new HashSet();
		for (int i = 0; i < str.length(); i++) {
			set.add(str.charAt(i));
		}
		System.out.println(set);
	}
	
	@Test
	public void test2(){
		String str="abccdde";
		List list=new ArrayList();
		Set set=new HashSet();
		for(int i=0;i<str.length();i++){
			list.add(str.charAt(i));
		}
		set.addAll(list);
		System.out.println(set);
	}

}

控制台输出:

从这个结果看出,我们set方式去掉重复后,我们顺序被打乱了 ,因为我们set取出数据和放入数据顺序不同

二:关于对象去重复,可以改写Set集合的方法来实现:

未完,待续。。。。。

猜你喜欢

转载自blog.csdn.net/Handsome2013/article/details/81169518