(5)案例:
A:去除集合中的多个字符串的重复元素
如果字符串的内容相同,即为重复元素
package cn.itcast_04;
import java.util.ArrayList;
import java.util.Iterator;
/*
* ArrayList去除集合中字符串的重复值(字符串的内容相同)
*
* 分析:
* A:创建集合对象
* B:添加多个字符串元素(包含内容相同的)
* C:创建新集合
* D:遍历旧集合,获取得到每一个元素
* E:拿这个元素到新集合去找,看有没有
* 有:不搭理它
* 没有:就添加到新集合
* F:遍历新集合
*/
public class ArrayListDemo {
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");
array.add("world");
// 创建新集合
ArrayList newArray = new ArrayList();
// 遍历旧集合,获取得到每一个元素
Iterator it = array.iterator();
while (it.hasNext()) {
String s = (String) it.next();
// 拿这个元素到新集合去找,看有没有
if (!newArray.contains(s)) {
newArray.add(s);
}
}
// 遍历新集合
for (int x = 0; x < newArray.size(); x++) {
String s = (String) newArray.get(x);
System.out.println(s);
}
}
}
//上面的while循环可以改成for循环
/*
for(int x=0;x<array.size();x++){
String arr = (String) array.get(x);
if (!newArray.contains(arr)) {
newArray.add(arr);
}
}
*/
//上面的while循环也可以改成这种格式的for循环
/*
for (Iterator it = array.iterator(); it.hasNext();) {
String s = (String) it.next();
if (!newArray.contains(s)) {
newArray.add(s);
}
}
*/
方法二:用Set集合去重复,元素添加到新的集合中去,遍历新集合
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");
array.add("world");
// 创建新集合
ArrayList newArray = new ArrayList();
Set set = new HashSet();
Iterator it = array.iterator();
while (it.hasNext()) {
String s = (String) it.next();
if (set.add(s)) {
newArray.add(s);
}
}
// 遍历新集合
for (int x = 0; x < newArray.size(); x++) {
String s = (String) newArray.get(x);
System.out.println(s);
}
}
方法三:用Set集合去重复,元素添加到新的集合中去,清空原集合,新集合添加到原集合中去,遍历原集合
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");
array.add("world");
// 创建新集合
List newArray = new ArrayList();
Set set = new HashSet();
Iterator it = array.iterator();
while(it.hasNext()){
String str = (String) it.next();
if(set.add(str)){
newArray.add(str);
}
}
array.clear();
array.addAll(newArray);
// 遍历原集合
for (int x = 0; x < array.size(); x++) {
String s = (String) newArray.get(x);
System.out.println(s);
}
}
//上面的while循环可以改成for循环
/*
for (int i = 0; i < array.size(); i++) {
String arr = (String) array.get(i);
if (set.add(arr)){
newArray.add(arr);
}
}
array.clear();
array.addAll(newArray);
*/
//上面的while循环也可以改成这种格式的for循环
/*
for (Iterator iter = array.iterator(); iter.hasNext();) {
String str = (String) iter.next();
if (set.add(str)){
newArray.add(str);
}
}
array.clear();
array.addAll(newArray);
*/