Java实现的数组去重与排序操作详解

这篇文章主要介绍了Java实现的数组去重与排序操作,结合实例形式分析了Java针对数组去重及排序操作相关遍历、排序、判断等使用技巧与注意事项,需要的朋友可以参考下

本文实例讲述了Java实现的数组去重与排序操作。分享给大家供大家参考,具体如下:

这里演示Java实现数组去重、排序操作

文中的示例源码编写基于Jdk1.6+、junit4.8.2

java.util.Arrays.sort()

支持对int[],long[],short[],char[],byte[],float[],double[],Object[]进行排序

参考示例代码片段如下

// 声明int 数组,并初始化 int[] intArry = {5,4,7,8,2,0,1,9,3,6,10}; // 对int数组进行排序 Arrays.sort(intArry);

Junit 测试类源码:

package com.gjnote.test.array; import java.util.Arrays; import org.junit.Test; public class TestArraysSort { // 声明int 数组,并初始化 int[] intArry = {5,4,7,8,2,0,1,9,3,6,10}; @Test public void test() { // 对int数组进行排序 Arrays.sort(intArry); for (int i = 0; i

控制台输出

1

2

3

4

5

6

7

8

9

10

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

java.util.Collections.sort()

通过实现内部compare方法实现对象的比较

示例代码片段如下

/** * 使用 Collections.sort(list, Comparator(){}); * 对List数组排序 推荐使用方法 */ public void collectionsSortElement1(List list) { Collections.sort(list, new Comparator() { @Override public int compare(String o1, String o2) { // 根据实际排序需要调整compareto对象顺序 return (o2).compareto(o1); } }); }

Java实现对List去重

方式一,使用for循环遍历去除List中的重复元素

代码片段如下

List tempList = new ArrayList(); // 去除原始List中的重复元素 for (String string : originalList) { if (!tempList.contains(string)) { tempList.add(string); } }

方式二,使用Set去重

代码片段如下

// Set 利用Set元素唯一性,去重 Set set = new HashSet(originalList); List tempList = new ArrayList(set);

方式三,使用 TreeSet去除重复元素

TreeSet treeSet = new TreeSet(originalList); ListtempList = new ArrayList(); tempList.addAll(treeSet); // treeSet 认的排序为升序,根据实际情况添加是否需要反排序 Collections.reverse(tempList);

Java实现对List去重后排序

Junit 测试List去重及排序源码

package com.gjnote.test.array; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.TreeSet; import org.junit.Before; import org.junit.Test; /** * Test Class * List 数组去重 元素排序 * * @version 1.0 * @author www.gjnote.com * */ public class TestListArraySort { private ListoriginalList = null; @Before public void setUp() throws Exception { originalList = new ArrayList(); for (int i = 10000; i > 0; i--) { originalList.add("element" + i); // add repeat element if(i % 2 == 0) { originalList.add("element" + i); } } } /** * 输出List 元素 * @param list */ private void outputList(List list) { for (int i = 0; i

运行testSetRemoveRepeatElement()控制台输出结果

testSetRemoveRepeatElement

Collections.sort:8ms

Collections.sort排序,使用Set去重:14ms

运行testTreeSetRemoveRepeatElement()控制台输出结果

testTreeSetRemoveRepeatElement

使用 TreeSet排序,去除重复元素:20ms

运行testForLoopRemoveRepeatElement()控制台输出结果

testForLoopRemoveRepeatElement

Collections.sort:7ms

使用for循环遍历List,去除重复元素: 2525ms

PS:这里再为大家提供几款相关工具供大家参考使用:

在线去除重复项工具:

http://tools.html.cn/code/quchong

在线文本去重复工具:

http://tools.html.cn/aideddesign/txt_quchong

在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:

http://tools.html.cn/aideddesign/paixu_ys

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...