一:关于简单类型去重复,例如字符串:
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集合的方法来实现:
未完,待续。。。。。