package com.yqw.list;

import java.util.ArrayList;
import java.util.Iterator;

public class Demo_ArrayList extends Object {

/**
* ArrayList 1、去除集合中字符串的重复值(字符串内容相同) 2、自定义对象去重(对象成员变量相同)
*contains方法底层依赖 equals方法

*remove方法底层依赖 equals方法,注意要重写equals方法和toString方法
* @param args
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public static void main(String[] args) {
ArrayList list = new ArrayList();
/**
* 1、字符串类型数据去重
*/
list.add("a");
list.add("b");
list.add("b");

/**
* 2、自定义对象去重(对象成员变量相同)
*/
ArrayList list2 = new ArrayList();
list2.add(new Person("张三", 23));
list2.add(new Person("李四", 24));
list2.add(new Person("李四", 24));
ArrayList list1 = Demo_ArrayList.getSingle(list2);
System.out.println(list1);

list1.remove(new Person("张三", 23)); //remove方法底层依赖 equals方法
System.out.println(list1);
}

public static ArrayList getSingle(ArrayList list) {
ArrayList newList = new ArrayList();

Iterator it = list.iterator();
while (it.hasNext()) {
Object obj = it.next();
if (!newList.contains(obj)) { //contains方法底层依赖 equals方法
newList.add(obj);
}
}
return newList;
}
}

class Person {
private String name;
private int age;

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

public Person() {
super();
}

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 + "]";
}

@Override
public boolean equals(Object obj) {
Person p = (Person) obj;
if (this.name.equals(p.name) && this.age == p.age) {
return true;
} else {
return false;
}
}
}

JAVA案例练习: 去除ArrayList中重复的字符串(字符串内容相同),去除重复的对象的更多相关文章

  1. js 去除数组中的空值以及数组判断是否有重复数据

    1.判断是否有重复数据 function isRepeat(array){ var hash = {}; for(var i in array) { if(array[i]!="" ...

  2. 【Java学习笔记】<集合框架>定义功能去除ArrayList中的重复元素

    import java.util.ArrayList; import java.util.Iterator; import cn.itcast.p1.bean.Person; public class ...

  3. 集合框架-ArrayList练习(去除ArrayList集合中的重复元素)

    1 package cn.itcast.p3.arraylist.test; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; ...

  4. ArrayList中重复元素处理方法.[Java]

    1.使用HashSet删除ArrayList中重复的元素 private static void sortByHashSet() { ArrayList<String> listWithD ...

  5. Java去除ArrayList集合中重复字符串的案例

    ArrayList去除集合中的字符串重复值 分析: A:创建集合对象 B:添加多个字符串元素 C:创建新集合 D:遍历旧集合,获取得到每一个元素 E:拿着个元素到新集合去找,看有没有 有:不进去 没有 ...

  6. Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素

    1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5 ...

  7. java集合 collection-list-ArrayList 去除ArrayList集合中的重复元素。

    import java.util.*; /* 去除ArrayList集合中的重复元素. */ class ArrayListTest { public static void sop(Object o ...

  8. Java基础知识强化之集合框架笔记28:ArrayList集合练习之去除ArrayList集合中的重复字符串元素(升级)

    1. 需求:ArrayList去除集合中字符串的重复值(字符串的内容相同)     要求:不能创建新的集合,就在以前的集合上做. 2. 代码示例之 去除集合中重复元素,不创建新的集合: package ...

  9. Java 去除 ArrayList 集合中的重复元素

    // One practice package Collection; import java.util.ArrayList; import java.util.Iterator; // 去除 Arr ...

随机推荐

  1. 系统性能工具篇(sar)

    转自:系统性能工具篇(sar) 1. 介绍 内容很多 是sysstat软件包的一部分 自动运行:/etc/crontab/sysstat $ cat /etc/cron.d/sysstat # The ...

  2. hyper-v显示分辨率如何自动调整

    打开文件/etc/default/grub 找到GRUB_CMDLINE_LINUX_DEFAULT所在行,在最后加上 video=hyperv_fb:[分辨率],比如我想要的分辨率是1600×900 ...

  3. uniapp - 点赞动画插件

    更新时间: 2019/8/31 - 点击下载demo 点赞动画插件配合animate.css更好用! 该组件参考于:https://github.com/OYsun/VueStar/tree/mast ...

  4. Better intuition for information theory

    Better intuition for information theory 2019-12-01 21:21:33 Source: https://www.blackhc.net/blog/201 ...

  5. 图形化SQL JOIN

  6. CatBoost使用GPU实现决策树的快速梯度提升CatBoost Enables Fast Gradient Boosting on Decision Trees Using GPUs

    python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)https://study.163.com/course/introduction.htm?courseId=1005269003&ut ...

  7. 笔记-JFB:业务流程梳理

    ylbtech-笔记-JFB:业务流程梳理 1.家政员找工作-->填写基本信息-->上岗申请--> 1.返回顶部 1. 2. 2. 2.返回顶部   3.返回顶部   4.返回顶部 ...

  8. python2 pickle.dump生成的文件,python3 pickle.load怎么加载

    会报错: UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 3: ordinal not in range(12 ...

  9. Java 学习大纲

    1.java基础 1.1 Collection和Map     (1)掌握Collection和Map的继承体系     (2)掌握ArrayList,LinkedList,Vector,Stack, ...

  10. [译]在Ubuntu 18.04上安装pip

    三步走: 1.更新源 sudo apt update 2.安装pip sudo apt install python3-pip 3.查看pip版本 pip3 --version pip 9.0.1 f ...