字符串对象
创建新集合的思路
- 创建集合
- 创建字符串对象并添加对象到集合
- 创建新集合
遍历旧集合,获取集合中的每一个元素。
拿这个元素到新的集合中去找,看有没有:有,不搭理;没有,添加这个元素到新集合。遍历新集合
去除ArrayList集合中的重复的字符串:
import java.util.ArrayList;
import java.util.Iterator;
/**
* @program: javalearnCode
* @description: 去除集合中的重复字符串元素
* @author: chen
* @create: 2018-08-23 11:37
**/
public class RmDuplicationString {
public static void main(String[] args){
//创建集合
ArrayList array= new ArrayList();
//创建字符串对象并添加对象到集合
array.add("hello");
array.add("world");
array.add("java");
array.add("world");
array.add("java");
array.add("world");
array.add("world");
array.add("world");
array.add("world");
array.add("java");
//创建新集合
ArrayList newArray= new ArrayList();
//遍历旧集合,获取集合中的每一个元素
//拿这个元素到新的集合中去找,看有没有:有,不搭理;没有,添加这个元素到新集合
Iterator it= array.iterator();
while(it.hasNext()){
String s= (String)it.next();
if(!newArray.contains(s)){
newArray.add(s);
}
}
//遍历新集合
Iterator itn= newArray.iterator();
System.out.print("newArray:");
while(itn.hasNext()){
String sn=(String)itn.next();
System.out.print(sn+" "); //hello world java
}
}
}
不创建新集合
输出错误
自定义对象
易出问题:出问题在!newArray.contains(s)这了
Note:contains方法的底层用的是equals()方法。没有重写Object类的equals()的话,默认比较的是地址值。
去除集合中自定义对象的重复值(对象的成员变量值都相同):
import java.util.ArrayList;
import java.util.Iterator;
public class RmDuplicationStudent {
public static void main(String[] args){
// 创建集合对象
ArrayList array = new ArrayList();
// 创建学生对象
Student s1 = new Student("林青霞", 27);
Student s2 = new Student("林志玲", 40);
Student s3 = new Student("凤姐", 35);
Student s4 = new Student("芙蓉姐姐", 18);
Student s5 = new Student("翠花", 16);
Student s6 = new Student("林青霞", 27);
Student s7 = new Student("林青霞", 18);
// 添加元素
array.add(s1);
array.add(s2);
array.add(s3);
array.add(s4);
array.add(s5);
array.add(s6);
array.add(s7);
//创建新集合
ArrayList newArray= new ArrayList();
//遍历集合获取集合中的每一个元素,拿到新集合中去
//看新集合中,有没有,如果没有,则添加该元素到新集合,否则,不搭理
//注意不要犯并发修改异常错误
Iterator it= array.iterator();
while(it.hasNext()){
Student s= (Student)it.next();
if(!newArray.contains(s)){ //--------在Student类里面要重写equals()方法 generate....
newArray.add(s);
}
}
//遍历新集合
Iterator itn= newArray.iterator();
while(itn.hasNext()){
Student sn=(Student)itn.next();
System.out.println(sn.getName()+ sn.getAge());
}
}
}