`
tigers
  • 浏览: 33865 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

将HashMap封装成一个LinkedList

阅读更多
HashMap经常在我们的应用程序中出现,它把key与value通过hash code映射起来,并存放到table中。在日常应用中,如果有这样的场景,就是基于HashMap封装成一个LinkedList,那么如何实现link的特性,还真是值得想想。在此先买个关子,欢迎大家积极参与讨论。
分享到:
评论
7 楼 cuiyi.crazy 2008-09-10  
tigers 写道
看来大家没理解上面的意思,上面是说把HashMap封装成List,而不是说把HashMap变成linked map。
有两种方法可以试试,一是把map<key, value>中的value再封装一次:{value, next},并使next指向下一个note的key,这个node就变成了linked list中的下一个节点了。
还有一个是将map中的所有keys组成一个list,这样相当于对key作链接,再由key到map中找到value.


一个list,一个map,凑在了一起,不就是linkedhashmap嘛;
反正我是自己实现的数据结构,一个list/array对象,一个map对象,然后索引参照;不过我不知道linkedhashmap现在也发现自己实现是合理的
6 楼 jasoncao1985 2008-03-26  
果然是把简单的东西复杂化!
5 楼 ispring 2008-03-26  
你是不是吃饱撑着了
4 楼 tigers 2008-03-24  
看来大家没理解上面的意思,上面是说把HashMap封装成List,而不是说把HashMap变成linked map。
有两种方法可以试试,一是把map<key, value>中的value再封装一次:{value, next},并使next指向下一个note的key,这个node就变成了linked list中的下一个节点了。
还有一个是将map中的所有keys组成一个list,这样相当于对key作链接,再由key到map中找到value.
3 楼 linken 2008-03-15  
Map map=new HashMap();
Object[] keyArray = (Object[]) map.keySet().toArray();
Object[] valueArray = (Object[]) map.values().toArray();

Map mapReturn = new LinkedHashMap();
for (int i = 0; i < keyArrayLength; i++)
  {
     mapReturn.put(keyArray[i], valueArray[i]);
     
   }

这样就可以从一个hashmap封装成一个LinkdeHashmap了。
2 楼 bookong 2008-03-14  
JDK1.4 后就有LinkedHashMap了吧?
1 楼 codeutil 2008-03-13  

难道你说的不是LinkedHashMap???

http://gceclub.sun.com.cn/Java_Docs/jdk6/html/zh_CN/api/java/util/LinkedHashMap.html

相关推荐

    java集合使用大全

    迭代器其实就是从集合中取元素的方式:每个集合都有取元素的方法,但是取元素不足以用一个方法来描述,所以就将取元素封装成一个 Iterator 接口类。每个集合都有迭代器。迭代器其实就是集合的内部类(该类实现 ...

    JAVA 用集合框架完成电话本管理系统

    联系人信息通常包括姓名、电话号码、邮箱等,可以封装成一个Contact类,每个Contact对象代表一个联系人。 ```java public class Contact { private String name; private String phoneNumber; private String ...

    华为面试题.doc 华为面试题.doc

    封装是指将数据和行为组合成一个整体,即类;继承是指子类继承父类的所有成员变量和成员方法;多态性是指同一个接口可以有多种不同的实现方式;抽象性是指对事物的精髓的抽象描述。 二、String和基本数据类型 ...

    《Java课程设计》介绍及代码

    封装使数据和方法结合成一个整体,提供安全的数据访问;继承允许子类继承父类的属性和方法,实现代码复用;多态则使得同一种行为可以有多种表现形式,提高了程序的灵活性。 2. 类与对象:在Java中,一切皆为对象。...

    核心JAVA/CoreJava/

    封装让数据和方法结合成一个整体,保护数据安全;继承使得子类可以继承父类的属性和方法,实现代码复用;多态则允许我们编写更具通用性的代码,适应不同的对象。 接着,深入到Java的内存管理和垃圾回收机制。Java...

    java 基础教程。。。

    5. **数组和集合框架**:数组是存储固定数量同类型元素的数据结构,而集合框架提供了更为灵活的容器,如ArrayList、LinkedList、HashSet和HashMap等,它们支持动态增长、遍历和操作元素。 6. **异常处理**:Java...

    thinking in java练习答案

    CHM文件是Microsoft编写的HTML Help Compiler的产物,它可以将HTML文档、图片等资源打包成一个文件,便于阅读和检索。 在《Thinking in Java》的学习过程中,读者会遇到许多关于类、对象、封装、继承、多态、异常...

    精通 Java_JDK

    - **JAR(jar)**:打包工具,可以将多个`.class`文件打包成一个`.jar`文件,方便分发和运行。 - **JConsole**:JVM监控工具,用于查看和分析Java应用程序的性能和资源使用情况。 - **VisualVM**:更高级的多合一工具...

    java语言入门中文版

    CHM文件是微软的一种帮助文件格式,全称为Compiled HTML Help,它将一系列HTML页面打包成一个文件,方便用户离线查阅。因此,这个压缩包可能包含了一系列关于Java基础知识的章节、示例代码和解释,旨在帮助读者理解...

    java试题B卷共5页.pdf.zip

    【标题】"java试题B卷共5页.pdf.zip" 提供的信息表明,这是一个与Java编程相关的考试或测验资料,包含5页问题的PDF文档,且该文档已被压缩成一个ZIP文件。通常,这样的资源可能来自学术教育、编程培训或者个人学习...

    Java语言程序设计-基础篇(原书第8版).pdf

    它包括List、Set、Map等接口,以及ArrayList、LinkedList、HashMap等实现类。 9. 输入输出(I/O):Java I/O涉及在应用程序中读取和写入数据。它包括文件I/O(使用File类和相关类)以及流I/O(使用InputStream、...

    java那些事儿chm

    CHM是一种常见的电子书格式,它将HTML文档、图像和其他资源组合成一个单一的压缩文件,方便用户离线阅读。在这个压缩包中,包含的文件名为“java那些事儿.chm”。 Java,作为世界上最流行的编程语言之一,拥有广泛...

    haiku-generator:从存储的单词词典生成俳句的简短程序

    7. **面向对象编程**:将俳句生成过程封装成一个类,可能包含私有成员变量(如词典、已选单词列表)、构造函数、方法(如生成俳句、检查音节数等)。 8. **命令行接口**:这个程序可能有一个简单的命令行界面,通过...

    think-in-java

    CHM(Compiled Help Manual)是微软推出的一种帮助文档格式,它将HTML文件、图像和其他资源组合成一个单一的压缩文件,便于阅读和分发。在这个压缩包中包含的"thinkinjava.chm"文件就是《Think in Java》的中文版CHM...

    JAVA语言入门(CHM)

    CHM(Compiled HTML Help)是一种常见的Windows平台上的帮助文件格式,它将一系列HTML页面组合成一个可搜索的文档,方便用户查找和学习相关资料。 在Java语言入门(CHM)中,你可能会学习到以下关键知识点: 1. **...

    超级有影响力霸气的Java面试题大全文档

    HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。 HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 Hashtable继承自Dictionary...

    IBM-ETP-java培训01.Java 简介.ppt

    8. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等数据结构的使用,以及接口和实现类之间的关系。 9. **包装类**:Integer、Double等八大基本类型的包装类,以及它们与原始类型之间的转换。 10. **多...

    HomeWork

    封装使数据和方法结合成一个独立的实体(类),继承允许子类继承父类的属性和方法,多态则提高了代码的灵活性和可扩展性。 3. **异常处理**:Java中的try-catch-finally结构用于捕获和处理程序运行时可能出现的错误...

Global site tag (gtag.js) - Google Analytics