【Java】为ArrayList去重

ArrayList没有封装好的去重方法,比如对于一个[2, 5, 2, 3, 2, 4]的ArrayList,我要去除其中的重复的元素,

我也不想把语句也这么长,也不想用for循环的方法去重,那么可以先考虑把ArrayList转化为一个临时的HashSet,再把这个临时的HashSet转化回ArrayList,

因为HashSet里面的元素是不可重复的嘛!至于什么是ArrayList与HashSet,在《【Java】Java中的Collections类——Java中升级版的数据结构》(点击打开链接)已经说得很清楚了,这里不再赘述。

你可以这样写:

HashSet<Integer> hashset_temp = new HashSet<Integer>(arraylist);
arraylist  = new ArrayList<Integer>(hashset_temp);

也可以写得更加简洁,连那个临时的hashset_temp变量都不要了:

arraylist  = new ArrayList<Integer>(new HashSet<Integer>(arraylist));

之后,ArrayList的元素变为[2, 3, 4, 5]

时间: 2024-10-14 19:08:26

【Java】为ArrayList去重的相关文章

Java 给ArrayList中的元素去重且顺序不变

import java.util.ArrayList; import java.util.LinkedHashSet; public class MainClass {     public static void main(String[] args)     {         //Constructing An ArrayList ArrayList<String> listWithDuplicateElements = new ArrayList<String>(); li

Java通过ArrayList的contains(Object o)方法实现去重字符串中的字符

1.步骤: 1)ArrayList的contains方法的简介: public boolean contains(Object o) 如果此列表包含指定的元素o,则返回true . 2)重写equals方法以便使用自己的方式去对比集合中的两个对象是否相同: // 重写equals方法 public boolean equals(Object obj) { if (obj instanceof myChar) { return ((myChar)obj).getValue() == this.va

java ArrayList去重案例

去除重复元素: public static ArrayList singleElement(ArrayList al) { //定义一个临时容器 ArrayList newAl = new ArrayList(); Iterator it = al.iterator(); while (it.hasNext()) { Object obj = it.next(); if (!newAl.contains(obj)) { newAl.add(obj); } } return newAl; } 自定

Java中ArrayList和LinkedList区别

一般大家都知道ArrayList和LinkedList的大致区别:      1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.      2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针.      3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据. ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用

Java中arraylist和linkedlist源代码分析与性能比較

Java中arraylist和linkedlist源代码分析与性能比較 1,简单介绍 在java开发中比較经常使用的数据结构是arraylist和linkedlist,本文主要从源代码角度分析arraylist和linkedlist的性能. 2,arraylist源代码分析 Arraylist底层的数据结构是一个对象数组.有一个size的成员变量标记数组中元素的个数,例如以下图: * The array buffer into which the elements of the ArrayLis

java 16-2 ArrayList的练习2

  需求:去除集合中自定义对象的重复值(对象的成员变量值都相同 注意: 我们按照和字符串一样的操作,发现出问题了. 为什么呢? 我们必须思考哪里会出问题? 通过简单的分析,我们知道问题出现在了判断上. 而这个判断功能是集合自己提供的,所以我们如果想很清楚的知道它是如何判断的,就应该去看源码. contains()方法的底层依赖的是equals()方法. 而我们的学生类中没有equals()方法,这个时候,默认使用的是它父亲Object的equals()方法 Object()的equals()默认

java 16-1 ArrayList的练习1

需求: ArrayList去除集合中字符串的重复值(去掉相同的字符串) 分析: 第一种做法:创建一个新的空集合: A:创建1个具有相同字符串的集合 B:创建1个空的集合 C:遍历第一个集合里面的元素 D:把遍历的元素一个个放进去第二个集合中,但有条件 a:若第二个集合中没有这个元素,则添加进去 b:若有这个元素,则不添加 E:遍历第二个集合,输出 1 package cn_ArrayList; 2 3 import java.util.ArrayList; 4 import java.util.

Java之arrayList 方法二

类型不兼容的错误集合 package com.yuanzijian02; import java.util.ArrayList; public class ArrayList2 { public static void main(String[] args) { // TODO 自动生成的方法存根 ArrayList list = new ArrayList(); list.add("hello"); list.add(new Integer(2)); String str = (St

java 遍历arrayList的四种方法

package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class ArrayListDemo {    public static void main(String args[]){        List<String> list = new ArrayList<String>();        list.add("luo

org.hibernate.MappingException:Unknown entity:java.util.ArrayList

1.错误描述 [CQ] ERROR [http-apr-8888-exec-3] com.opensymphony.xwork2.util.logging.commons.CommonsLogger.error (38)|Exception occurred during processing request:Unknown entity:java.util.ArrayList 2.错误描述 3.解决办法