zoukankan      html  css  js  c++  java
  • 集合去掉重复元素的两种方式

    ①、创建新集合方式
    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);
      }
     }
    }
  • 相关阅读:
    C++-类的const成员变量
    Linux-编译器gcc/g++编译步骤
    C++-理解构造函数、析构函数执行顺序
    Linux-Unix版本介绍
    C++-const_cast只能用于指针和引用,对象的const到非const可以用static_cast
    Linux-如何查看登陆shell的类型
    C++-不要在构造和析构函数中调用虚函数
    C++-模板的声明和实现为何要放在头文件中
    C++-函数模板特化如何避免重复定义
    Linux-Gcc生成和使用静态库和动态库详解
  • 原文地址:https://www.cnblogs.com/rong123/p/10163864.html
Copyright © 2011-2022 走看看