集合的排序 一个集合中存储无序元素 使其有序化(字典顺序) 不去重

原创 2016年08月30日 22:03:38
package comheima.test;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;

/**
 * 一个集合中存储无序元素 使其有序化(字典顺序) 不去重 并打印
 * 
 * @author fenuang
 *
 * 分析:无序--->list集合
 */
public class demo {
	public static void main(String[] args) {
		ArrayList<String> list = new ArrayList<>();

		list.add("aaaa");
		list.add("aaaa");
		list.add("abbb");
		list.add("aaaa");
		list.add("aaaa");
		list.add("accc");
		list.add("bbbb");
		sort(list);
	}

	// 定义方法排序并保留重复
	// 使用比较器
	// 把list集合的数据添加到treeSet
	// 清空list
	// 吧新数据导入list
	// 遍历打印
	public static void sort(List<String> list) {
		// 传入list的好处是可以传子类arraylist和linkedlist
		// TODO Auto-generated method stub

		// 匿名内部类
		TreeSet<String> ts = new TreeSet<>(new Comparator<String>() {

			@Override
			public int compare(String o1, String o2) {
				// TODO Auto-generated method stub
				int num = o1.compareTo(o2);
				return num == 0 ? 1 : num;
			}
		});

		// 把数据加入比较器
		ts.addAll(list);

		// 清空原集合
		list.clear();

		list.addAll(ts);
		System.out.println(list);
	}

	// 吧list中的数据加到比较器中

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

对一个n*n矩阵,通过行变换,使其每行元素的平均值按递增顺序排序

原题:编写一个算法,对一个n*n矩阵,通过行变换,使其每行元素的平均值按递增顺序排序。 #include #include #include #include//控制输出格式的头文件 #include...

《java入门第一季》之集合框架TreeSet存储元素自然排序以及图解

这一篇对TreeSet做介绍,先看一个简单的例子:  * TreeSet:能够对元素按照某种规则进行排序。  * 排序有两种方式  * A:自然排序: 从小到大排序  * B:比较器排序   ...

黑马程序员——java集合元素排序存储操作

------- android培训、java培训、期待与您交流! ---------  黑马程序员-----java集合元素排序存储操作  //集合对象比较存储 /* 有五个学生,每个学生有3...

黑马程序员------TreeSet集合框架存储自定义元素之排序Comparable与Comparator

------- android培训、java培训、期待与您交流! ---------- TreeSet集合框架存储自定义元素之排序Comparable与Comparator 我们知道,往TreeSe...

给定一个字符数组,存储有R、G、B字符,将所有字符按照RGB顺序排序

这个题目隐约是在某个博客上看到过,后来书签掉了,一直找不到原文,所以只好自己写了一个解法,但愿没有出错。 题目描述 已知一个字符数组,其中存储有R、G、B字符,要求将所有的字符按照RGB的顺序进行...

java基础—自定义一个比较器,对TreeSet 集合中的元素按指定方法来排序(java集合六)

生活中的每一刻,不管是正经历着怎样的挣扎与挑战,或许我们都只有一个选择,虽然痛苦,却依然要快乐,并相信未来...

数据结构之——找到无序数组中排序后相邻元素差值的最大值

/**  * 有一个整形数组A,请设计一个复杂度为O(n)的算法,算出排序后相邻两数的最大差值。 给定一个int数组A和A的大小n,请返回最大的差值。保证数组元素多于1个。  * @author...

无序数组O(n)时间找到排序后的两个相邻元素使得他们之间的差最大

1、基数排序,然后根据排序后的数组找到相差的最大值。public int maximumGap(int[] nums) { if (nums == null || nums.length < ...

一个无序实数数组中的相邻两个元素的最大差值

题目描述: 一个无序的实数数组a[i],要求求里面大小相邻的实数的差的最大值。比如 double a[]={1,5,4,0.2,100} 这个无序的数组,相邻的数的最大差值为100-5=95. ...

一个无序整数数组中找到最长连续序列(Longest Consecutive Sequence)和两个元素使得相差最小

无序数组中查找最长连续序列: 1、最笨的方法,首先将无序数组排序,然后依次遍历查找最长连续序列。时间复杂度为O(nlgn),空间复杂度为O(1)。2、首先将元素存入HashSet,然后逐个遍历原数组...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:集合的排序 一个集合中存储无序元素 使其有序化(字典顺序) 不去重
举报原因:
原因补充:

(最多只允许输入30个字)