全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java中ArrayList去除重复元素(包括字符串和自定义对象)

1.去除重复字符串

package com.online.msym;
import java.util.ArrayList;
import java.util.Iterator;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class Demo1_ArrayList {  
  public static void main(String[] args) {
    ArrayList list = new ArrayList();
    list.add("a");
    list.add("a");
    list.add("b");
    list.add("b");
    list.add("c");
    list.add("c");
    list.add("c");
    list.add("c");
    ArrayList newList = getSingle(list);
    System.out.println(newList);
  }
  /*
   * 创建新集合将重复元素去掉
   * 1,明确返回值类型,返回ArrayList
   * 2,明确参数列表ArrayList
   * 
   * 分析:
   * 1,创建新集合
   * 2,根据传入的集合(老集合)获取迭代器
   * 3,遍历老集合
   * 4,通过新集合判断是否包含老集合中的元素,如果包含就不添加,如果不包含就添加
   */
  public static ArrayList getSingle(ArrayList list) {
    ArrayList tempList = new ArrayList();          //1,创建新集合
    Iterator it = list.iterator();              //2,根据传入的集合(老集合)获取迭代器
    while(it.hasNext()) {                  //3,遍历老集合
      Object obj = it.next();                //记录住每一个元素
      if(!tempList.contains(obj)) {            //如果新集合中不包含老集合中的元素
        tempList.add(obj);                //将该元素添加
      }
    }  
    return tempList;
  }
}

2.去除ArrayList中重复自定义对象元素

注意事项:必须重写equals()方法的,因为contains方法和remove方法底层都依赖于equals方法

package com.online.msym;
import java.util.ArrayList;
import java.util.Iterator;
import online.msym.bean.Person;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class Demo2_ArrayList {
  /**
   * * 需求:ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同,即同姓名同年龄)
     :注意事项: 重写equals()方法的
    contains方法判断是否包含,底层依赖的是equals方法
    remove方法判断是否删除,底层依赖的是equals方法
   */
  public static void main(String[] args) {
    ArrayList list = new ArrayList();        //创建集合对象
     list.add(new Person("张三", 23));
    list.add(new Person("张三", 23));
    list.add(new Person("李四", 24));
    list.add(new Person("李四", 24));
    list.add(new Person("李四", 24));
    list.add(new Person("李四", 24));
    //ArrayList newList = getSingle(list);      //调用方法去除重复
    //System.out.println(newList);
    list.remove(new Person("张三", 23));
    System.out.println(list);
  }
  /*
   * 创建新集合将重复元素去掉
   * 1,明确返回值类型,返回ArrayList
   * 2,明确参数列表ArrayList
   * 
   * 分析:
   * 1,创建新集合
   * 2,根据传入的集合(老集合)获取迭代器
   * 3,遍历老集合
   * 4,通过新集合判断是否包含老集合中的元素,如果包含就不添加,如果不包含就添加
   */
  public static ArrayList getSingle(ArrayList list) {
    ArrayList tempList = new ArrayList<>();          //1,创建新集合
    Iterator it = list.iterator();              //2,根据传入的集合(老集合)获取迭代器
    while(it.hasNext()) {                  //3,遍历老集合
      Object obj = it.next();                //记录住每一个元素
      if(!tempList.contains(obj)) {            //如果新集合中不包含老集合中的元素
        tempList.add(obj);                //将该元素添加
      }
    }
    return tempList;
  }
}

Person实体类:

package online.msym.bean;
public class Person {
  private String name;
  private int age;
  public Person() {
    super();
  }
  public Person(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 String toString() {
    return "Person [name=" + name + ", age=" + age + "]";
  }
  //重写equals方法,用于判断连个Person对象是否相同
  @Override
  public boolean equals(Object obj) {
    Person p = (Person)obj;
    System.out.println("equals 方法被调用了,证明contains方法底层调用的是equals");
    return this.name.equals(p.name) && this.age == p.age;
  }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# java  # arraylist去重复  # arraylist去除重复  # java对ArrayList中元素进行排序的几种方式总结  # Java ArrayList实现删除指定位置的元素  # Java集合删除元素ArrayList实例详解  # java集合类arraylist循环中删除特定元素的方法  # 2种Java删除ArrayList中的重复元素的方法  # Java 8 对 ArrayList 元素进行排序的操作方法  # 遍历  # 的是  # 重写  # 判断是否  # 李四  # 迭代  # 就不  # 自定义  # 将该  # 中不  # 不包含  # 返回值  # 连个  # 同年龄  # 变量值  # 依赖于  # 实体类  # Demo1_ArrayList  # println  # String 


相关文章: 存储型VPS适合搭建中小型网站吗?  如何零基础在云服务器搭建WordPress站点?  网站制作难吗安全吗,做一个网站需要多久时间?  开心动漫网站制作软件下载,十分开心动画为何停播?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Python文件管理规范_工程实践说明【指导】  制作宣传网站的软件,小红书可以宣传网站吗?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何在阿里云虚拟主机上快速搭建个人网站?  招商网站制作流程,网站招商广告语?  建站主机服务器选购指南:轻量应用与VPS配置解析  建站之星导航如何优化提升用户体验?  如何快速辨别茅台真假?关键步骤解析  视频网站app制作软件,有什么好的视频聊天网站或者软件?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何使用Golang table-driven基准测试_多组数据测量函数效率  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  名字制作网站免费,所有小说网站的名字?  如何快速搭建高效服务器建站系统?  代购小票制作网站有哪些,购物小票的简要说明?  浅谈Javascript中的Label语句  网站制作软件免费下载安装,有哪些免费下载的软件网站?  建站VPS推荐:2025年高性能服务器配置指南  北京制作网站的公司,北京铁路集团官方网站?  建站主机选购指南与交易推荐:核心配置解析  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  盐城做公司网站,江苏电子版退休证办理流程?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  C#如何使用XPathNavigator高效查询XML  建站之星会员如何解锁更多建站功能?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  如何基于云服务器快速搭建个人网站?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  青岛网站建设如何选择本地服务器?  建站之星如何快速解决建站难题?  如何通过VPS搭建网站快速盈利?  建站主机选哪家性价比最高?  如何选择高效可靠的多用户建站源码资源?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  C++中引用和指针有什么区别?(代码说明)  建站之星好吗?新手能否轻松上手建站?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  如何将凡科建站内容保存为本地文件?  如何在万网自助建站中设置域名及备案?  如何通过二级域名建站提升品牌影响力?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  建站之星logo尺寸如何设置最合适? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。