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集合主要分为两大类:List(列表)和Set(集)。List是一个有序的集合,允许元素重复,并且可以...
TreeMap是一种基于红黑树实现的有序映射(SortedMap)。它实现了NavigableMap接口,可以按照键的自然顺序或自定义排序规则对键值对进行排序和访问。
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...
TreeMap 是一个有序的 Map 集合,它可以根据键的自然顺序或自定义的比较器进行排序。 TreeMap 排序的优点 1. 高效排序:TreeMap 使用红黑树数据结构来存储数据,因此它可以快速地插入、删除和查找数据。 2. 自定义...
Java集合框架是Java编程语言中的一个核心部分,它为数据存储和管理提供了高效且灵活的解决方案。本思维导图及总结旨在深入理解并掌握Java集合的相关概念和使用方法。 首先,我们来了解一下Java集合框架的基本构成。...
在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, `TreeMap`以及`HashTable`之间的区别。 #### 1. HashMap `...
在Java编程语言中,`TreeMap` 是一个有序的键值对集合,它实现了 `SortedMap` 接口。这个数据结构内部基于红黑树(Red-Black ...这个例子展示了Java集合框架的强大功能,并提供了学习和应用数据结构的一个实用示例。
本文将深入探讨Java集合框架的基础知识,包括接口、类、以及它们在实际开发中的应用。 首先,Java集合框架由一系列接口和实现这些接口的类组成。主要的接口有`List`、`Set`和`Queue`,它们各自代表了不同特性的数据...
在`Java集合排序及java集合类详解.PDF`文档中,你可以找到关于集合排序和不同集合类的详细讲解。例如,如何使用Collections.sort()方法对List进行排序,以及如何自定义比较器Comparator实现复杂排序逻辑。对于Map,...
TreeMap是Java集合框架中的一种Map实现,它实现了SortedMap接口,能够根据键的自然顺序或自定义的比较器对键进行排序。在本例中,我们使用TreeMap来统计单词出现的次数,并按照字母表顺序输出。 知识点2:Java比较...
在Java编程语言中,`TreeMap` 和 `TreeSet` 是两种基于红黑树数据结构实现的集合类,它们都提供了自动排序的功能。本文将详细探讨 `TreeMap` 和 `TreeSet` 的排序机制以及如何自定义排序规则。 首先,`TreeMap` 是...
综上所述,`TreeMap`是Java中一个重要的有序映射数据结构,适用于需要排序和导航功能的场景。了解其特性和常用方法,有助于在实际编程中更高效地利用这个容器。阅读"TreeMap in Java.pdf"文档将进一步深入理解其内部...
Java 集合类详解 Java 集合类是 Java 语言中的一种基本数据结构,用于存储和操作大量数据。集合类可以分为三大类:Collection、List 和 Set。 Collection 是集合框架中的根接口,提供了基本的集合操作,如 add、...
本文将深入探讨Java集合框架的各个方面,包括Collection、List、Set和Map,以及它们的实现原理和排序机制。 **1. 集合框架概述** 集合框架是Java中的一个容器系统,它允许程序员存储和操作一组对象。集合框架的...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了一组接口和类,用于高效地存储、管理和操作数据。这个“一个讲解很清晰的Java集合框架PPT”显然是一个对外公开的教育资源,旨在帮助学习者深入理解Java集合...