`
annan211
  • 浏览: 460296 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 集合之 TreeMap 排序

 
阅读更多


  hash 集合中 比较 代表性的 几种集合 依次为 hashMap HashSet,LinkedHashMap LinkedHashSet,TreeMap TreeSet ,其中 HashMap HashSet 是无序的,数据存入和迭代出的顺序是不确定的,LinkedHashMap 和 LinkedHashSet 是有序的,顺序可以是存入数据的顺序,也可是 最后访问的数据,这取决于 构造函数,默认是存入的顺序。
TreeMap TreeSet 有着高效的基于key的排序算法。
  如果非要在 HashMap中 增加排序功能,不建议自己去写排序方法,粗糙而缓慢。
强烈建议使用 TreeMap 。代码如下。


package treeMap;

import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

public class TreeMapDemo {

	public static void main(String[] args) {

		Map map = new TreeMap();
		Student s1 = new Student("zhangsan",67);
		Student s2 = new Student("lisi",78);
		Student s3 = new Student("wangwu",89);
		Student s4 = new Student("dak",90);
		map.put(s1, s1);
		map.put(s2, s2);
		map.put(s3, s3);
		map.put(s4, s4);

		/**
		 * 找出 介于 s1和s4之间的学生
		 */
		Map map1 = ((TreeMap)map).subMap(s1, s4);
		for(Iterator it = map1.keySet().iterator();it.hasNext();){
			Student key = (Student)it.next();
			System.out.println("key==>"+map1.get(key));
		}

		System.out.println("---------------------------------");

		/**
		 * 找出低于s2的学生
		 */
		Map map2 = ((TreeMap)map).headMap(s2);
		for(Iterator it = map2.keySet().iterator();it.hasNext();){
			Student key = (Student)it.next();
			System.out.println("key==>"+map2.get(key));
		}

		System.out.println("---------------------------------");
		/**
		 * 找出大于等于s3的学生
		 */
		Map map3 = ((TreeMap)map).tailMap(s3);
		for(Iterator it = map3.keySet().iterator();it.hasNext();){
			Student key = (Student) it.next();
			System.out.println("key==>"+map3.get(key));
		}


	}
}

 class Student implements Comparable<Student>{

	private int scode;
	private String name;

	public Student(String name,int scode){
		this.name = name;
		this.scode = scode;
	}

	@Override
	public int compareTo(Student o) {
		// TODO Auto-generated method stub
		if(o.scode < this.scode)
			return 1;
		else if(o.scode > this.scode)
			return -1;
		return 0;
	}

	public String toString(){
		return "name=="+this.name+", scode = "+this.scode;
	}
}

分享到:
评论

相关推荐

    Java集合排序及java集合类详解

    在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...

    java集合-TreeMap的使用

    TreeMap是一种基于红黑树实现的有序映射(SortedMap)。它实现了NavigableMap接口,可以按照键的自然顺序或自定义排序规则对键值对进行排序和访问。

    Java集合排序及java集合类详解.pdf

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

    java中TreeMap排序的示例代码

    TreeMap 是一个有序的 Map 集合,它可以根据键的自然顺序或自定义的比较器进行排序。 TreeMap 排序的优点 1. 高效排序:TreeMap 使用红黑树数据结构来存储数据,因此它可以快速地插入、删除和查找数据。 2. 自定义...

    java集合思维导图

    Java集合框架是Java编程语言中的一个核心部分,它为数据存储和管理提供了高效且灵活的解决方案。本思维导图及总结旨在深入理解并掌握Java集合的相关概念和使用方法。 首先,我们来了解一下Java集合框架的基本构成。...

    java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, `TreeMap`以及`HashTable`之间的区别。 #### 1. HashMap `...

    java treemap 学生信息

    在Java编程语言中,`TreeMap` 是一个有序的键值对集合,它实现了 `SortedMap` 接口。这个数据结构内部基于红黑树(Red-Black ...这个例子展示了Java集合框架的强大功能,并提供了学习和应用数据结构的一个实用示例。

    java 集合

    本文将深入探讨Java集合框架的基础知识,包括接口、类、以及它们在实际开发中的应用。 首先,Java集合框架由一系列接口和实现这些接口的类组成。主要的接口有`List`、`Set`和`Queue`,它们各自代表了不同特性的数据...

    java 集合和内部类资料

    在`Java集合排序及java集合类详解.PDF`文档中,你可以找到关于集合排序和不同集合类的详细讲解。例如,如何使用Collections.sort()方法对List进行排序,以及如何自定义比较器Comparator实现复杂排序逻辑。对于Map,...

    java用treemap统计单词出现的个数

    TreeMap是Java集合框架中的一种Map实现,它实现了SortedMap接口,能够根据键的自然顺序或自定义的比较器对键进行排序。在本例中,我们使用TreeMap来统计单词出现的次数,并按照字母表顺序输出。 知识点2:Java比较...

    浅谈java中的TreeMap 排序与TreeSet 排序

    在Java编程语言中,`TreeMap` 和 `TreeSet` 是两种基于红黑树数据结构实现的集合类,它们都提供了自动排序的功能。本文将详细探讨 `TreeMap` 和 `TreeSet` 的排序机制以及如何自定义排序规则。 首先,`TreeMap` 是...

    TreeMap in Java_java_treemap_

    综上所述,`TreeMap`是Java中一个重要的有序映射数据结构,适用于需要排序和导航功能的场景。了解其特性和常用方法,有助于在实际编程中更高效地利用这个容器。阅读"TreeMap in Java.pdf"文档将进一步深入理解其内部...

    java集合类详解(set list ArrayList等java集合类详述)

    Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、...

    Java集合排序及java集合类详解参照.pdf

    本文将深入探讨Java集合框架的各个方面,包括Collection、List、Set和Map,以及它们的实现原理和排序机制。 **1. 集合框架概述** 集合框架是Java中的一个容器系统,它允许程序员存储和操作一组对象。集合框架的...

    一个讲解很清晰的Java集合框架PPT

    Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组接口和类,用于高效地存储、管理和操作数据。这个“一个讲解很清晰的Java集合框架PPT”显然是一个对外公开的教育资源,旨在帮助学习者深入理解Java集合...

Global site tag (gtag.js) - Google Analytics