Java集合排序

java集合排序

如何给Java中List集合排序呢?前端时间在工作中遇到类似于给这样的结构排序List<Map<String,String>>>按照其中Map中的某个key值排序呢?

集合产生如下:

<span style="font-size:18px;">public void sortList(){
		List<List<Map<String,String>>> list = new ArrayList<List<Map<String,String>>>();
		int group = 0;
		for(int i =0;i<10;i++){
			List<Map<String,String>> tempList = new ArrayList<Map<String,String>>();
			group = new Random().nextInt(45);
			for(int j = 0;j<2;j++){
				Map<String,String> map = new HashMap<String,String>();
				map.put("group", group+"");
				tempList.add(map);
			}
			list.add(tempList);
		}
		for(int i=0;i<list.size();i++){
			System.out.println("group ==" + list.get(i).get(0).get("group"));
		}
}</span>

其中group的顺序为:

<span style="font-size:24px;">group ==43
group ==25
group ==28
group ==32
group ==19
group ==20
group ==25
group ==21
group ==24
group ==36</span>

排序函数为:

<span style="font-size:18px;">public List<List<Map<String, String>>> sortResList(List<List<Map<String, String>>> list) {
		if (list != null && list.size() > 0) {
			for (int i = 0; i <list.size(); i++) {
				for (int j = i; j < list.size(); j++) {
					int tempGroup = Integer.valueOf(list.get(i).get(0).get("group"));
					int tempGroup1 = Integer.valueOf(list.get(j).get(0).get("group"));
					if (tempGroup1 < tempGroup) {
						<span style="color:#ff0000;">Collections.swap(list, i, j);</span>
					}
				}
			}
		}
		return list;
}</span>

这次排序函数用了冒泡排序的思想,主要的思想是调用了API的Collections.swap(List<?> list, int i, int j)这个函数,实现排序功能!

<span style="font-size:24px;">排序后的结果为:
sort之后的情况
group ==3
group ==9
group ==9
group ==10
group ==12
group ==23
group ==24
group ==36
group ==43
group ==44</span>

------- 路漫漫其修远兮,吾将上下而求索

Java集合排序,布布扣,bubuko.com

时间: 2024-10-27 04:42:13

Java集合排序的相关文章

Java-集合--Java集合排序

Java集合排序 前几天在工作的当中遇到对List<Map<String,String>>这样的数据结构按照Map<String,String>中的某个字段排序, 具体的实现为: <span style="font-size:18px;">public void sortList(List<Map<String, String>> list, final String field) { Collections.so

java 集合排序

http://www.cnblogs.com/standcloud/articles/2601914.html java 集合排序 Java API针对集合类型排序提供了两种支持:java.util.Collections.sort(java.util.List)java.util.Collections.sort(java.util.List, java.util.Comparator) 第一个方法要求所排序的元素类必须实现java.lang.Comparable接口.第二个方法要求实现一个j

Java集合排序及java集合类详解--(Collection, List, Set, Map)

1         集合框架 1.1         集合框架概述 1.1.1         容器简介 到目前为止,我们已经学习了如何创建多个不同的对象,定义了这些对象以后,我们就可以利用它们来做一些有意义的事情. 举例来说,假设要存储许多雇员,不同的雇员的区别仅在于雇员的身份证号.我们可以通过身份证号来顺序存储每个雇员,但是在内存中实现呢?是不是要准备足够的内存来存储1000个雇员,然后再将这些雇员逐一插入?如果已经插入了500条记录,这时需要插入一个身份证号较低的新雇员,该怎么办呢?是在内

java集合排序方法sort的使用

转自  http://blog.csdn.net/a1165117473/article/details/6965652 /** To change this template, choose Tools | Templates* and open the template in the editor.*/ package com.city.test; import java.util.Arrays;import java.util.Comparator;/**** @author LiuB*/

Java集合排序(面试必考点之一)

集合是Java面试必考知识点,而集合的排序也是非常重要的,工作中经常用到,那么这个知识点也是必须要掌握的,下面是我曾经面试时被面试官问的问题: 根据API可知,Java集合的工具类Collections提供了两种排序方式:Collections.sort(List list) 和 Collections.sort(List list,Comparator c). 第一种方式称为自然排序(一般是升序),参与排序的对象需实现comparable接口,重写其compareTo()方法. 第二种方式称为

Java集合框架实现自定义排序

Java集合框架针对不同的数据结构提供了多种排序的方法,虽然很多时候我们可以自己实现排序,比如数组等,但是灵活的使用JDK提供的排序方法,可以提高开发效率,而且通常JDK的实现要比自己造的轮子性能更优化. 一 .使用Arrays对数组进行排序 Java API对Arrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法. 1.使用Arrays排序:Arrays使用非常简单,直接调用sort()即可 int[] arr = new int[] {5,8,-2,0,10}; Array

java编程排序之自定义类型的集合,按业务需求排序

自定义引用类型放入集合中,按实际业务需求进行排序的两种思路 第一种思路: (1)自定义实体类实现java.lang.Comparable接口,重写public int compareTo(Object obj)方法.自定义业务比较规则 (2)利用java.util.Collections类的静态方法sort(List<自定义类型> list)进行排序(默认升序)或者.自己编写排序工具类.冒泡+compareTo(obj)方法 第二种思路 (1)自己编写业务比较规则类.实体类不用实现任何借口.业

java中重写Comparator对两个list集合排序

public class test{ public static void main(String[] args) { List<LeaveRequest>  LvRequestList=new List<LeaveRequest>(); List<OtRequest> otRequestList=new List<OtRequest>(); List   allList=new List(); allList.addAll( LvRequestList);

java集合进行排序的两种方式

java集合的工具类Collections中提供了两种排序的方法,分别是: Collections.sort(List list) Collections.sort(List list,Comparator c) 第一种称为自然排序,参与排序的对象需实现comparable接口,重写其compareTo()方法,方法体中实现对象的比较大小规则,示例如下: 实体类:(基本属性,getter/setter方法,有参无参构造方法,toString方法) 1 package test; 2 3 publ