集合去掉重复元素的两种方式

①、创建新集合方式
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);
  }
 }
}
②、选择排序思想

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);
  }
 }
}
posted @ 2018-12-23 12:21  阿蓉  阅读(1043)  评论(0编辑  收藏  举报