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

原创 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中的数据加到比较器中

}

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

相关文章推荐

Java集合的有序、无序、排序性质讨论

首先搞清楚有序、无序及排序性质的差别。 集合的有序、无序是指插入元素时,保持插入的顺序性,也就是先插入的元素优先放入集合的前面部分。 而排序是指插入元素后,集合中的元素是否自动排序。(例如升序排序...
  • zjwcdd
  • zjwcdd
  • 2016-05-05 12:49
  • 3779

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

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

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

《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的顺序进行...

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

无序数组中查找最长连续序列: 1、最笨的方法,首先将无序数组排序,然后依次遍历查找最长连续序列。时间复杂度为O(nlgn),空间复杂度为O(1)。2、首先将元素存入HashSet,然后逐个遍历原数组...

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

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

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

1、基数排序,然后根据排序后的数组找到相差的最大值。public int maximumGap(int[] nums) { if (nums == null || nums.length < ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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