`

java 中 Hashtable 排序 (转)

    博客分类:
  • java
阅读更多
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排序

    实现hashtable按值排序和按key排序,可直接运行

    java map实例,排序

    java map排序,hashmap,linkedmap,treemap,hashtable

    JAVA SE 开发手册.CHM

    6、JAVA数组及查找和排序 7、JAVA面向对象之三大特性 8、JAVA面向对象之函数、堆和栈、访问修饰符 9、JAVA面向对象关键字 10、JAVA面向对象抽象类abstract 11、JAVA面向对象接口interface 12、JAVA面向对象之...

    java集合类面试题总结

    HashMap 和 Hashtable 都是 Java 中的散列表实现,但它们有所不同。HashMap 允许一个 null 键和多个 null 值,而 Hashtable 不允许 null 键和 null 值。Hashtable 还是同步的,这意味着它是线程安全的,但这也使得它...

    Java Map 按照Value排序的实现方法

    Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。这篇文章主要介绍了Java Map 按照Value排序的实现方法,需要的朋友可以参考下

    Java后端面试问题整理.docx

    • 熟悉Java多线程并发中线程基本方法,线程池,线程生命周期,熟悉Java锁中常见锁分类(乐观/悲观锁、自旋锁、独/共享锁、可重入锁、公平/非公平锁、分段锁、偏向锁,轻/重量级锁)和基本的锁升级策略

    java summary(java笔记)

    学习java的一些笔记和个人总结 9、Collection 和 Collections的区别。  Collection是集合类的上级接口,继承与他的接口主要有Set 和List.。Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种...

    Java容器类List、ArrayList、Vector及map、HashTable应用

    List、ArrayList、Vector及map、HashTable、HashMap的区别与用法 使用容器排序 Vector由于使用了synchronized方法(线程安全)

    HashMap,HashTable,LinkedHashMap,TreeMap的区别

    在 Java 中,Map 是一个非常重要的集合类,用于存储键值对。其中,HashMap, HashTable, LinkedHashMap, TreeMap 是四种常用的 Map 实现类,每种类都有其特点和用途。本文将对这四种 Map 实现类进行比较和分析。 ...

    java jdk实列宝典 光盘源代码

    java为数据结构中的映射定义一个接口java.util.Map,有四个实现类HashMap Hashtable LinkedHashMap TreeMap用法和区别;对Map排序; 5字符串 使用String;判断一个字符串是否是合法的java标识符;使用StringBuffer;...

    java中级面试题(自己汇总)

    本文总结了Java中级面试题,涵盖了集合、HashMap、HashSet、HashTable、ConcurrentHashMap、红黑树、Java 8对HashMap的优化、LinkedHashMap、TreeMap、IdentityHashMap等知识点。 集合 * List和Set都是继承自...

    实战应用Java算法分析与设计-1算计概述与抽象数据类型

    线性结构与顺序表、单向链表、循环链表、栈的基本概念、链式堆栈、中缀表达式、队列、链式队列、串、MyString、Brute-Force算法、MySet类实现、矩阵类、递归算法、哈夫曼树、希尔排序、HashTable算法等内容

    JAVA面试题最全集

    9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中...

    Thinking in Java简体中文(全)

    2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用...

    java联想(中文)

    2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用...

    java面试宝典

    42、一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 12 43、说出一些常用的类,包,接口,请各举5 个。 12 44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以...

    Java面试大合集

    Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。 Static Nested Class 和 Inner Class 的不同 Nested Class(一般是C++的说法),Inner Class(一般是JAVA的说法)。...

    实战应用Java算法分析与设计-3图的概念以及图的邻接矩阵类实现

    线性结构与顺序表、单向链表、循环链表、栈的基本概念、链式堆栈、中缀表达式、队列、链式队列、串、MyString、Brute-Force算法、MySet类实现、矩阵类、递归算法、哈夫曼树、希尔排序、HashTable算法等内容

Global site tag (gtag.js) - Google Analytics