JAva--ArrayListコレクション内の文字列の重複値の除去

4413 ワード

いくつかの方法は、コードで直接見てみましょう.
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);
			}
		}
import java.util.ArrayList;
import java.util.Iterator;

/*
 *   :ArrayList            (        )
 *   :        ,         。
 */
public class ArrayListDemo2 {
	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");

		//          ,                
		//  0           ,       
		//   , 1  ...
		for (int x = 0; x < array.size() - 1; x++) {
			for (int y = x + 1; y < array.size(); y++) {
				if (array.get(x).equals(array.get(y))) {
					array.remove(y);
					y--;
				}
			}
		}

		//     
		Iterator it = array.iterator();
		while (it.hasNext()) {
			String s = (String) it.next();
			System.out.println(s);
		}
	}
import java.util.ArrayList;
import java.util.Iterator;

/*
 *   :              (           )
 * 
 *              ,      。
 *     ?
 * 		            ?
 * 		       ,             。
 * 		               ,                    ,       。
 * contains()         equals()  。
 *           equals()  ,    ,         Object equals()  
 * Object() equals()         ,  ,     。  new   ,      。
 *          ,        ,  equals()  。
 *       。
 */
public class ArrayListDemo3 {
	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)) {
				newArray.add(s);
			}
		}

		//      
		for (int x = 0; x < newArray.size(); x++) {
			Student s = (Student) newArray.get(x);
			System.out.println(s.getName() + "---" + s.getAge());
		}
	}
}

Studioのクラスコードは次のとおりです.
public class Student {
	private String name;
	private int age;

	public Student() {
		super();
	}

	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Student other = (Student) obj;
		if (age != other.age)
			return false;
		if (name == null) {
			if (other.name != null)
				return false;
		} else if (!name.equals(other.name))
			return false;
		return true;
	}

}