`
zhyt710
  • 浏览: 206489 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java api -- 对列表和数组排序

阅读更多

一. 简单排序

package test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Test {
	public static void main(String[] args) throws Exception {
        //对列表排序
		List list = new ArrayList();
        list.add("aaa");
        list.add("ccc");
        list.add("bbb");
        System.out.println("列表排序前");
        System.out.println(list.get(0) + " " + list.get(1) + " " + list.get(2));
        //对list进行字典排序
        Collections.sort(list);
        System.out.println("列表排序后");
        System.out.println(list.get(0) + " " + list.get(1) + " " + list.get(2));

        //对数组排序
        String s[] = {"aaa", "ccc", "bbb"};
        System.out.println("数组排序前");
        System.out.println(s[0] + " " + s[1] + " " + s[2]);
        Arrays.sort(s);
        System.out.println("数组排序后");
        System.out.println(s[0] + " " + s[1] + " " + s[2]);
	}
}

 

二.稍微复杂点的

下面是对列表中的一个自实现hash表根据其key1字段值进行降序排列的例子排序。注意实现的关键在于被排序的对象类型实现了java.lang.Comparable接口。 看了下面的例子,相信列表中在存放其他类型,如javabean实现排序也就知道怎么做了。

package test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;

public class Test {
	public static void main(String[] args) throws Exception {
        //对列表排序
		List list = new ArrayList();
		MyMap map1 = new MyMap();
		map1.put("key1", 1);
		MyMap map2 = new MyMap();
		map2.put("key1", 2);
		list.add(map1);
		list.add(map2);
		System.out.println("排序前");
		System.out.println(list.get(0) + " " + list.get(1));
		Collections.sort(list);
		System.out.println("排序后(降序排列)");
		System.out.println(list.get(0) + " " + list.get(1));
	}
}

class MyMap extends HashMap implements Comparable {
	public MyMap(){
		super();
	}
	
	/**
	 * 降序排列
	 */
	public int compareTo(Object b) {
		MyMap m = (MyMap) b;
		int i = Integer.parseInt(this.get("key1") + "");
		int you = Integer.parseInt(m.get("key1") + "");
		if(i > you)
			return -1;
		else if(i < you) 
			return 1;
		else
			return 0;
	}
}

  当然也可以用下面的方法来排序,这就是引用匿名类的技巧

package test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@SuppressWarnings("unchecked")
public class Test {
	public static void main(String[] args) throws Exception {
        //对列表排序
		List list = new ArrayList();
		
		list = new ArrayList();
		Map map11 = new HashMap();
		map11.put("key1", 1);
		Map map12 = new HashMap();
		map12.put("key1", 2);
		list.add(map11);
		list.add(map12);
		System.out.println("排序前");
		System.out.println(list.get(0) + " " + list.get(1));
		Collections.sort(list, new Comparator() {
			public int compare(Object a, Object b) {
				Map aa = (Map) a;
				Map bb = (Map) b;
				int i = Integer.parseInt(aa.get("key1") + "");
				int you = Integer.parseInt(bb.get("key1") + "");
				if(i > you)
					return -1;
				else if(i < you) 
					return 1;
				else
					return 0;
			}
		});
		System.out.println("排序后(降序排列)");
		System.out.println(list.get(0) + " " + list.get(1));
	}
}
 

 

 

分享到:
评论

相关推荐

    json -api 下载

    1. **JSON数据格式**:了解JSON的基本结构,如对象(键值对,用花括号{}包围)和数组(有序元素列表,用方括号[]包围)。以及字符串、数字、布尔值、null等基本类型。 2. **JSONAPI规范**:理解资源、嵌套资源、...

    java 集合分组与排序

    Java集合框架中的`List`接口和数组(Array)是两种常用的数据结构,它们在处理数据时各有优势。下面我们将深入探讨如何在Java中实现集合的分组与排序。 1. **集合分组**: 集合分组通常涉及到`GroupingBy`操作,这...

    java字符串和数组基础共21页.pdf.zip

    Java字符串和数组是Java编程语言中的基本概念,对于任何Java开发者来说,理解和掌握它们都是至关重要的。在这21页的PDF教程中,我们很可能会深入探讨这两个核心主题。 首先,让我们来谈谈Java中的字符串。在Java中...

    java 集合和数组的详细总结(并随着讲解带9个例子)

    Java集合和数组是Java编程语言中的基础数据结构,...9. **集合的流式处理**:Java 8引入的Stream API,对集合进行函数式编程。 通过这些例子,你可以深入理解Java集合和数组在实际编程中的应用,提升你的编程技能。

    Java_api帮助文档

    `Collections`和`Arrays`两个类是Java中处理集合和数组的重要工具。`Collections`提供了一系列静态方法用于操作各种集合,包括排序、填充、反转等;而`Arrays`类则专注于数组的排序、比较和复制等操作。 在I/O流...

    JavaJDK1.5中文简体API文档

    - **数据类型**:包括基本数据类型(如int, double, char等)和引用数据类型(如类、接口和数组)。 - **包(Package)**:Java的包机制帮助组织和管理类,如`java.lang`, `java.util`, `java.io`等。 - **异常...

    jdk1.8-API中文版

    类型注解(Type Annotations)允许在类型签名上使用注解,增强了静态分析工具和编译器的能力,例如在泛型类型参数、返回类型、参数类型和数组组件类型上使用注解。 以上只是JDK 1.8部分重要更新,实际的API中还有...

    jdk1.8 中文版api

    在`java.util.Collections`和`java.util.Arrays`类中增加了新的静态工厂方法,如`copyOf()`、`synchronizedList()`等,用于创建集合和数组,使得代码更加简洁。 八、并发改进 JDK 1.8对并发编程的支持也有所增强,...

    JAVA---ProjetoWorkArray:阵列研究设计

    【标题】"JAVA---ProjetoWorkArray:阵列研究设计" 涉及的主要知识点是Java编程语言中的数组处理和数组相关的设计与实现。数组在Java中是基础且重要的数据结构,它允许我们存储和操作同一类型的数据集合。在这个项目...

    JDK_API_1.7

    `Collections`和`Arrays`类添加了新的工厂方法,如`of()`、`copyOf()`等,方便创建不可变集合和数组。 10. **改进的异常处理** 异常检查更加灵活,可以抛出多个检查异常,避免了不必要的异常包裹。 11. **增强的...

    jdk1.7中文api打包集合.rar

    `java.util.Collections`和`java.util.Arrays`类增加了新的工厂方法,如`Collections.emptyList()`、`Collections.emptyMap()`,以及`Arrays.asList()`,简化了集合和数组的创建。 Java API 1.7中文版的出现,使得...

    最新Java面试题

    - **集合和数组的比较**:集合是动态调整大小的容器,更加灵活;数组是固定大小的数据结构。 - **`Collection`和`Collections`的区别**: - `Collection`:接口,集合类的顶级接口。 - `Collections`:工具类,...

    Java 的常用包与数组的复制与排序26

    以上就是关于Java的常用包和数组复制排序的基本介绍。理解并熟练运用这些知识,将有助于提升Java编程的效率和质量。在实际开发中,还会涉及到更多高级特性和技巧,如多线程、并发控制、设计模式等,都需要不断学习和...

    java 解题 实例

    **基础语法**:Java的基础语法包括变量声明、数据类型(如整型、浮点型、字符型、布尔型)、运算符(算术、关系、逻辑、位、赋值等)、流程控制(如if语句、switch语句、for循环、while循环、do-while循环)和数组的...

    JAVA详细教程

    - **第2章--数据类型**:Java的数据类型分为基本数据类型(如整型、浮点型、字符型和布尔型)和引用数据类型(如类、接口和数组)。理解每种数据类型的存储方式和使用场景是学习Java的基础。 - **第4章--数组方法*...

    Java 疑难杂症_笔记.pdf

    - **Jdk (Java Development Kit)**:Java开发工具包,包含了编译、运行Java程序所需的各种工具,例如`javac`(Java编译器)、`java`(Java解释器)以及其他辅助工具,比如调试器和文档生成工具等。 - **Jre (Java ...

    java1.7 特性实现

    Java 7在`Collections`和`Arrays`类中添加了一些工厂方法,简化了集合和数组的初始化。例如,创建一个不可变列表: ```java List&lt;String&gt; list = Collections.unmodifiableList(Arrays.asList("a", "b", "c")); ...

    JAVA开发技术培训PPT课件.ppt

    - 引用数据类型指的是类、接口和数组。 - 运算符包括算术运算符、比较运算符、逻辑运算符等,表达式用于组合这些运算符以执行特定计算。 - 语句和流程控制包括条件语句(if, if-else, switch)、循环语句(for, ...

    java学习路线总结.doc

    - **集合概念**:理解集合的作用,比较集合和数组的区别。 - **集合框架**:熟悉Collection和Map接口,学习泛型的使用,理解ArrayList、LinkedList、Vector和Stack的特点。 - **遍历与迭代器**:掌握各种遍历集合的...

Global site tag (gtag.js) - Google Analytics