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

Java Collection框架:你可能不知道的一些小知识

    博客分类:
  • Java
阅读更多

关于Java Collection Framework,你可能已经知道如下一些事实

  1. Vector是线程安全的,ArrayList不是
  2. ArrayList的读操作比LinkedList快,LinkedList的append操作比ArrayList快
  3. Set中不可能有两个相等的元素,也就是说,如果e1和e2都在同一个Set中,那么不可能有e1.equals(e2)
  4. HashMap是线程不安全的,HashTable是线程安全的


但是你可能还不知道或者不了解这些事情:

  1. LinkedList不是线程安全的
  2. 不管是在多线程还是单线程的环境下,ArrayList都要比Vector快很多倍
  3. Set中可以插入null,不过最多只会有一个
  4. HashMap中可以插入null,HashTable中不行
  5. TreeSet使用compareTo代替equals判断是否两个元素相等
  6. HashMap中的元素,无论是keySet还是valueSet,都不一定是按照插入时间先后排序的,HashSet也一样
  7. 对于非线程安全的类,比如HashMap,ArrayList,TreeSet,可以使用Collections.synchronizedXXX方法(比如synchronizedSet,synchronizedList,synchronizedMap)
  8. 你可以使用Collections.unmodifiableList来构建出一个不能被修改的List
  9. 你可以使用Arrays.equals来判断两个数组是否相等
  10. WeakHashMap使用元素的引用而不是值作为key,也就是说必须在引用相同(a==b)的情况下才能找到相关的值
  11. 对于WeakHashMap,一旦引用失效,相应的值也就不存在了,比如下面一段代码中:

 




view plain copy to clipboard print ?
  1. public   class  TestHashMap {    
  2.   
  3.      public   static  WeakHashMap wHmp=  new  WeakHashMap();    
  4.        
  5.      public   static   void  main(String args[]){    
  6.        String s1 =  new  String( "one" );    
  7.        wHmp.put(s1, new  Integer( 1 ));    
  8.        addObject(wHmp);    
  9.        Set setHmp= wHmp.keySet();    
  10.            
  11.         for (Iterator it=setHmp.iterator();it.hasNext();){    
  12.           System.out.println(wHmp.get(it.next()));    
  13.       }    
  14.            
  15.    }    
  16.        
  17.     public   static   void  addObject(WeakHashMap wHmp){    
  18.            
  19.      String s2 =  new  String( "two" );    
  20.      String s3 =  new  String( "three" );    
  21.      wHmp.put(s2, new  Integer( 2 ));    
  22.      wHmp.put(s3, new  Integer( 3 ));    
  23.      s2= null ;    
  24.      s3= null ;    
  25.      System.gc();    
  26.    }    
  27. }   

 

最后打印出来的结果只有"one”

 

 

原文:http://dev.firnow.com/course/3_program/java/javajs/20090425/165344.html

分享到:
评论

相关推荐

    Java知识框架

    以下是一些关键的Java知识点,这些内容通常会包含在这个知识框架中: 1. **Java简介**:Java是由Sun Microsystems(现为Oracle Corporation)开发的面向对象的编程语言,以其“一次编写,到处运行”的特性而闻名。...

    【Java】Java集合框架思维导图。

    xmind格式的Java集合框架学习导图,包括Collection接口/Map接口以及具体实现类。 同样包含大厂面试题,也在导图中有所体现。 能学到什么: 更加成体系的知识框架,更加全面的、系统的知识。 思维导图: 思维导图具有...

    Java容器框架 collection集合

    ### Java容器框架 Collection集合 #### 一、基本概念 Java容器类库主要目的是为了存储对象,根据不同的数据结构,可以将其划分为两个主要的概念:**Collection** 和 **Map**。 - **Collection**:这是一个单一...

    java collection framework

    ### Java Collection Framework 相关知识点 #### 一、引言 在 Java 领域,《Java Collection Framework》这本书被广泛认为是一本优秀的教程,尤其适合初学者了解集合框架的前世今生。通过本书的学习,读者不仅能...

    java笔记整理(超详细) java笔记整理(超详细)

    以下是关于Java的一些核心知识点: 1. **面向对象特性**: - 封装:将数据和操作数据的方法绑定在一起,形成一个独立的实体,减少外部对内部状态的直接访问。 - 继承:子类继承父类的属性和方法,实现代码复用,...

    Java-collection-frame.rar_Java集合框架

    总之,Java集合框架是Java程序员必备的知识,熟练掌握它可以极大地提高代码质量、可读性和运行效率。在实际开发中,根据需求选择合适的集合类型和操作方式,对于构建高效、可靠的软件系统至关重要。

    Java集合框架学习笔记

    本篇将详细探讨Java集合框架的基础知识,包括核心接口、类的层级结构以及Java 5引入的泛型特性。 首先,让我们了解一下`java.lang.Class`。`Class`类在Java中扮演着特殊的角色,它不仅是一个普通类,而且是用于获取...

    java collection

    Java集合框架是Java编程语言中一个非常核心的部分,它提供了数据结构和算法的实现,使得开发者可以方便地存储和管理...同时,也要关注Java集合框架的其他类,如TreeMap、Vector和Deque等,这些都会丰富你的编程工具箱。

    Java集合框架常见面试题.pdf

    根据提供的文档内容,文件是关于Java集合框架的面试题知识点总结。以下是Java集合框架的知识点详述: Java集合框架主要包括Collection接口和Map接口两大分支。Collection接口主要包括List、Set以及Queue三个子接口...

    关于Java_Collection_API_

    在Java的Collection框架中,集合类被划分为两大类:线程安全集合类与非线程安全集合类。早期版本的集合类(如`Vector`和`Hashtable`)通过`synchronized`关键字实现线程安全,但在单线程环境下这种同步机制会显著...

    java面试题,java框架面试题

    Java 面试题是 Java 开发人员面试的必备知识,涵盖了 Java 基础知识、Java 框架、Java 集合框架、Java 多线程、Java 网络编程等方面的知识点。在本文中,我们将对 Java 面试题进行总结和分析,帮助读者快速掌握 Java...

    java知识图谱.rar

    Java知识图谱是Java开发人员深入理解和提升技能的重要资源,涵盖了广泛的Java技术领域。这个压缩包"java知识图谱.rar"包含了一系列与Java相关的主题,旨在帮助开发者构建一个全面的Java知识体系。以下是对其中各个...

    JAVA COLLECTION (APress)

    《JAVA COLLECTION》是一本专注于Java集合框架的书籍,由APress出版社出版。这本书深入浅出地探讨了Java API中的各种数据结构,是学习和理解Java集合框架的理想资源。作者通过简洁明了的语言,使得初学者也能轻松...

    Java集合框架常见面试题夜间阅读版.pdf

    根据提供的信息,我们可以总结并详细解释关于Java集合框架的一些关键知识点。这些知识点主要涉及Java集合框架中的各种数据结构,如List、Set、Map等,并深入探讨了它们在实际应用中的特性与用途。 ### Java集合框架...

    Java基础知识-day02【Collection、泛型】.pdf

    本节课程主要讲解了 Java 中的 Collection 框架和泛型,涵盖了 Collection 的基本概念、Collection 框架的继承结构、Collection 的常用功能、迭代器的使用和泛型的定义等知识点。 Collection 框架是 Java 中提供的...

    JAVA基础技术框架详解二.pdf

    本资源摘要信息中,我们将详细介绍 Java 相关技术框架的各种知识点,涵盖了 Java 语言基础、Java 虚拟机(JVM)、Java 集合框架、Java 并发编程、Java 网络编程、数据存储技术等方面的知识。 Java 语言基础 * Java...

    java集合Collection总结

    以上只是Java集合框架中Collection接口及其相关子接口和实现类的基础知识。在实际开发中,我们需要根据具体需求选择合适的集合类型,合理利用其特性,优化代码性能。通过实例练习,可以更好地理解和掌握这些概念。...

    Java collection_java_控制服务器_服务器_

    在“Java collection_java_控制服务器_服务器_”这个主题中,我们将深入探讨Java集合框架以及如何利用它们来构建服务器控制程序。 首先,Java集合框架包括接口(如List、Set、Queue)和实现这些接口的具体类(如...

Global site tag (gtag.js) - Google Analytics