在编写js代码的时候 发现可以通过json的特性排除数据重复,实现快速去重。
然后心血来潮java中Map也有这个特性, 所以使用java方式实现去重的算法,
代码比较简单,直接上代码:
package org.jshand.test; import java.util.HashMap; import java.util.Map; import java.util.Set; public class Arrat { /** * 数组排序的写法 * @param array * @return */ public static Integer[] unique(int[] array){ Map<Integer,Object> map = new HashMap(); /*将所有元素放到Map的Key中 得到去重复的key集合**/ for(int el : array){ map.put(el, true); } /*将Key中所有元素集合转换成数组**/ Set<Integer> set = map.keySet(); Integer[] a = new Integer[set.size()]; //返回泛型数组 return map.keySet().toArray(a); } /** * 测试函数 * @param args */ public static void main(String[] args) { //定义冗余数组 int[] array = {6,8,3,4,1,2,7,8,10,3,4,8}; //获取去重数组 Integer[] uniqueArray = unique(array); //打印下结果 for (Integer integer : uniqueArray) { System.out.println(integer); } } }
相关推荐
JavaScript中的数组去重是编程中常见的操作,尤其是在处理数据集合时。本文将详细介绍八种不同的...在实际编程中,还可以考虑使用`reduce`、`map`等其他数组方法,或者结合`lodash`等库进行更高效的数组去重操作。
### Java集合排序及java集合类详解(Collection、List、Map、Set) #### 集合框架概述 ##### 容器简介 在Java编程中,容器(Container)是指用来存储和管理对象的一种数据结构。随着应用程序复杂度的增加,简单地...
利用Lambda表达式和Map的特性,可以根据属性去重。 ```java @Test void testRemoveByAttribute2() { Map, Player> map = playerList.stream() .collect(Collectors.toMap(Player::getName, p -> p, (p1, p2) -> ...
`TreeSet`保证了元素的排序,但这种方法的时间复杂度略高,因为它需要对每个元素进行比较。 ```java import java.util.Set; import java.util.TreeSet; public class RemoveRepeatStr { public static void main...
在Java编程语言中,数组和集合是两种不同的数据结构,它们各自有其特性和适用场景。数组是最基本的数据结构,而集合框架则提供了一种更高级、更灵活的方式来存储和操作对象。 首先,我们来看看数组。数组是固定大小...
Set 集合的特点在于它不允许包含重复的元素,这使得 Set 非常适合用来进行去重和成员检测。在 Java 中,`HashSet` 和 `TreeSet` 是两种常用的 Set 实现。`HashSet` 提供了较快的添加、删除和查找操作,而 `TreeSet` ...
在实际开发中,`Set`和`Map`经常用于数据去重、存储配置信息、构建索引等多种场景。了解并熟练掌握它们的用法,能够提高代码的效率和可维护性。例如,在工具类开发中,可以创建一个`HashSet`来存储已处理过的数据,...
### Java中的Set与Map集合详解 #### 一、Set系列集合概述 Set接口是`java.util.Collection`框架的一部分,它代表一个不允许重复元素的集合。Set接口的主要特点是它不包含重复元素,即Set中不能有两个相同的对象。...
`List`可以通过`Collections.sort()`进行排序,而`Set`通常在创建时就已排序(如`TreeSet`)。`Map`无法直接排序,但可以使用`SortedMap`接口的实现,如`TreeMap`。 最后,集合的转换和复制也很常见。`ArrayList`...
6. 实现排序算法,如快速排序、归并排序,利用List接口提供的特性。 通过这个实验,学生将加深对Java集合框架的理解,学会如何选择合适的集合类型以优化代码性能,同时提升问题解决和算法设计能力。这不仅是Java...
HashSet利用哈希表(HashMap)实现,具有常量级别的插入和查询时间复杂度,适合于快速去重和判断元素是否存在。而TreeSet则基于红黑树(TreeMap),能按特定规则排序元素,插入元素时需实现Comparable接口或提供...
- **排序**:List和Set根据各自的规则进行排序,而Map的排序通常基于键的自然顺序或自定义比较器。 - **迭代器**:所有容器类都支持迭代器,允许按顺序访问和操作元素,List还提供了ListIterator用于双向遍历。 4...
再如第2题“两数之差”,要求找出数组中唯一的重复元素,我们可以利用Java的特性,借助HashSet去重,再遍历一次数组找出重复项。以下是Java实现: ```java public int singleNumber(int[] nums) { Set<Integer> ...
8. **集合转换**:集合之间可以通过`addAll()`方法进行合并,`Collections.sort()`用于对List排序,`Arrays.asList()`将数组转换为List,`stream()`方法则引入了Java 8的流式处理。 9. **并发编程**:在多线程环境...
例如,编写一个程序,读取用户输入的一组数字,存储到数组或集合中,并进行排序或去重。 4. **面向对象**:理解类、对象、继承、封装、多态等概念。设计一个简单的类,如学生信息类,包含姓名、年龄等属性,并提供...
- **数据排序与去重**:利用 `sorted` 和 `distinct` 对数据进行排序和去重处理。 - **数据聚合**:使用 `reduce` 对数据进行汇总计算。 - **并行数据处理**:对于大数据集,使用并行流可以显著提高处理速度。 ...
在Java编程语言中,集合框架提供了多种数据结构实现,包括`List`、`Set`和`Map`,它们各自有着独特的特性和用途。 1. **List**: - **有序性**:List是一个有序的数据结构,这意味着它维护了元素插入时的顺序。当...
根据提供的文档信息,本文将详细解析并发容器(Map、List、Set)的实战应用及其原理。并发容器在Java多线程环境下发挥着至关重要的作用,它们的设计旨在解决非线程安全容器在高并发场景下的性能瓶颈问题。接下来,...
7. **集合(Set)**:Java提供了HashSet和TreeSet类,前者基于哈希表实现,后者基于红黑树,用于存储不重复的元素,适用于去重、成员资格测试等。 8. **映射(Map)**:键值对存储,Java提供了HashMap、TreeMap、...