import java.util.Arrays;
import java.util.Comparator;
import java.util.Hashtable;
import java.util.Map;
import java.util.Set;
public class HastableSort {
/**
* 方法名称:getSortedHashtable 参数:Hashtable h 引入被处理的散列表
* 描述:将引入的hashtable.entrySet进行排序,并返回
*/
public static Map.Entry[] getSortedHashtableByKey(Hashtable h) {
Set set = h.entrySet();
Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set
.size()]);
Arrays.sort(entries, new Comparator() {
public int compare(Object arg0, Object arg1) {
Object key1 = ((Map.Entry) arg0).getKey();
Object key2 = ((Map.Entry) arg1).getKey();
return ((Comparable) key1).compareTo(key2);
}
});
return entries;
}
/**
* 方法名称:getSortedHashtable 参数:Hashtable h 引入被处理的散列表
* 描述:将引入的hashtable.entrySet进行排序,并返回
*/
public static Map.Entry[] getSortedHashtableByValue(Hashtable h) {
Set set = h.entrySet();
Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set
.size()]);
Arrays.sort(entries, new Comparator() {
public int compare(Object arg0, Object arg1) {
int key1 = Integer.parseInt(((Map.Entry) arg0).getValue()
.toString());
int key2 = Integer.parseInt(((Map.Entry) arg1).getValue()
.toString());
return ((Comparable) key1).compareTo(key2);
}
});
return entries;
}
/**
* @param args
*/
public static void main(String[] args) {
Hashtable t = new Hashtable();
t.put("10-11 02:45德利城VS德罗赫达联队", "德利城VS德罗赫达联队");
t.put("10-11 02:45朗福德城VS谢尔伯恩", "朗福德城VS谢尔伯恩");
t.put("10-11 05:00EL国民队VS托拉卡", "EL国民队VS托拉卡");
t.put("10-11 02:00巴西VS厄瓜多尔", "巴西VS厄瓜多尔");
Map.Entry[] set = getSortedHashtableByKey(t);
// perportyTable
for (int i = 0; i < set.length; i++) {
System.out.println(set[i].getKey().toString());
System.out.println(set[i].getValue().toString());
}
}
}
分享到:
相关推荐
实现hashtable按值排序和按key排序,可直接运行
### HashTable排序概念 `HashTable`是一种数据结构,用于存储键值对。在Java中,`Hashtable`类实现了`Map`接口,提供了基于哈希表的数据结构。但是,`Hashtable`本身不保证其元素的顺序。当需要根据键或值对`...
### 在Java中运用Hashtable #### 一、哈希表(Hashtable)的概念与作用 哈希表(Hashtable)是一种数据结构,它可以快速地插入、删除和查找数据。在计算机科学领域,哈希表早已不是新鲜事物,它能显著提高程序处理...
### Java中HashMap, LinkedHashMap, TreeMap,HashTable的区别 在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, ...
`Hashtable`是Java早期版本中的类,它与`HashMap`类似,但不支持null键和null值,且是线程安全的。由于其线程安全性,`Hashtable`在多线程环境下无需额外的同步措施,但在单线程环境下,它的性能通常低于非同步的`...
标题中的“比hashtable查找起来方便,转换类型也简单”暗示了我们正在讨论一个与`Hashtable`类有关的Java编程话题。`Hashtable`是Java集合框架中的一员,它是一个线程安全的键值对存储容器,但随着Java的发展,一些...
哈希表(Hashtable)是Java中的一个核心数据结构,它基于键值对(key-value pair)的概念,提供了高效的存储和查找功能。在Java标准库中,`java.util.Hashtable`类实现了可存储任意对象的键值对容器。这个类自Java ...
集合框架是Java中处理一组对象的标准库,包括接口(如`Collection`、`List`、`Set`等)、接口的实现(如`ArrayList`、`LinkedList`、`HashSet`等)和算法(如排序、搜索等操作)。`Collection`是最基础的接口,所有...
在Java集合框架中,`HashMap`, `HashTable` 和 `HashSet` 是三个重要的数据结构,它们分别实现了`Map`接口和`Set`接口,提供了不同的功能来满足不同的编程需求。本文将重点分析这三种数据结构之间的区别,特别是针对...
在Java编程语言中,存在着众多看似相似但实质上有着显著区别的概念,这些概念的深入理解对于编程者来说至关重要。本文将重点解析标题与描述中提及的一些关键知识点,包括final、finally、finalize的区别,以及...
在Java编程语言中,列表(List)是一种常用的数据结构,用于存储有序的元素集合。本文将深入探讨如何从List对象中获取数据,包括使用不同类型的List实现以及从List中提取特定值的方法。我们将通过示例代码来理解这些...
标题 "Javapython for leetcode 1 array2 list3 string4 hashtable5 m.zip" 提供的信息表明,这个压缩包包含了一系列与LeetCode题目相关的Java和Python编程解决方案,重点涉及了数组、列表、字符串、哈希表(或字典...
在Java编程中,Map接口是用于存储键值对的数据结构,常见的实现类包括HashMap、TreeMap、Hashtable和LinkedHashMap等。这些实现类各有特点,但默认并不保证元素的顺序。当我们需要按照Value(值)对Map进行排序时,...
### Java容器类详解:List、ArrayList、Vector及Map、HashTable应用 #### 一、Java容器类概述 在Java中,容器类(也称为集合类)主要用于存储和管理对象。Java SDK提供了一系列内置容器类,它们位于`java.util`...
本文主要关注如何对Java Map中的键(key)和值(value)进行排序。 1. **Key排序**: - **TreeMap** 是一个基于红黑树数据结构的Map实现,它能自动按key的自然顺序或自定义的Comparator进行排序。默认情况下,...
在Java编程语言中,`HashMap`、`TreeMap`和`Hashtable`是三种常见的集合类,它们都实现了`Map`接口,用于存储键值对数据。理解这些类的区别和应用场景对于提升Java开发技能至关重要。 首先,`HashMap`是Java中最...
在Java编程语言中,`HashMap`、`Hashtable`和`HashSet`都是集合框架的重要组成部分,分别用于存储键值对和不重复元素。下面将详细解释它们之间的区别。 首先,`Hashtable`是`Map`接口的一个早期实现,它提供了一个...
Java的`java.util.HashMap`和`java.util.Hashtable`是实现哈希表的例子,支持O(1)的平均时间复杂度查找和插入。 8. 排序算法:包括冒泡排序、选择排序、插入排序、快速排序、归并排序等,它们是数据结构的重要部分...
Java的HashMap和Hashtable类实现了哈希表,其中HashMap是非同步的,而Hashtable是线程安全的。 7. 集合: Set接口代表不包含重复元素的集合,Java提供了HashSet和TreeSet实现。List接口代表有序的元素集合,...