集合框架-去重字串案例

ZHOU_VIP發表於2017-04-23

(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);
*/



相關文章