`

java 常见 Collection 总结

    博客分类:
  • java
阅读更多

本篇博客内容总结于网上的两篇博客以及帮助文档:

java常用集合总结,java中常用集合类

一,List类和Set类

     1)、List接口及其实现类
           List接口继承于Collection接口。 List接口及其实现类是容量可变的列表,可按索引访问集合中的元素。
           特点:集合中的元素有序、可重复;
          

          实现类:
              ArrayList是以Arayy方式实现的List,允许快速随机存取,相对于LinkedList不适合进行插入和移除元素操作(非线程安全);
              LinkedList提供最佳顺序存取,适合插入和移除元素(非线程安全)。

             

              Array和java.util.Vector
              Vector是一种老的动态数组,线程安全的,效率很低,一般不赞成使用。
   2)、Set接口及其实现类
           Set接口同样继承于Collection接口。
           特点:集合中的元素无序、不包含重复的元素。
          

          实现类:
              HashSet 能够快速定位一个元素,要注意的是:存入HashSet中的对象必须实现HashCode()方法(非线程安全);
              TreeSet 将放入其中的元素按序存放(非线程安全)。

二,Map接口及其实现类
            Map是一个单独的接口,不继承于Collection。Map是一种把键对象和值对象进行关联的容器。
            特点:键对象不允许重复
           

         实现类:
            HashMap 实现一个键到值映射的哈希表,通过键取得值对象(非线程安全);
            Properties 一般是把属性文件读入流中后,以键-值对的形式进行保存,以方便读取其中的数据(线程安全的)。

          

             注:HashMap和HashTable
                    a.HashMap去掉了HashTable的contains方法,但是加上了containsValue()和containsKey()方法。
                    b.HashTable(继承自java.util.Dictionary<K,V> )线程安全的,而HashMap是非同步的,效率上比HashTable要高。
                    c.HashMap允许空键值,而HashTable不允许。

    4)、Iterator接口
             Iterator接口位于java.util包中,它是一个对集合进行迭代的迭代器。
              集合容器(如:List、Set、Map等)本身提供了处理元素置入和取出的方式,但是单一选取元素的方法很受限制。所以我们要用Iterator去选取容器中的元素,它将容器转换成一个序列。

 

           集合适用场景

  •                  对于查找和删除较为频繁,且元素数量较多的应用,Set或Map是更好的选择;
  •                  ArrayList适用于通过为位置来读取元素的场景;
  •                  LinkedList 适用于要头尾操作或插入指定位置的场景;
  •                  Vector 适用于要线程安全的ArrayList的场景;
  •                  Stack 适用于线程安全的LIFO场景;
  •                  HashSet 适用于对排序没有要求的非重复元素的存放;
  •                 TreeSet 适用于要排序的非重复元素的存放;
  •                  HashMap 适用于大部分key-value的存取场景;
  •                 TreeMap 适用于需排序存放的key-value场景。

     

    Collection、Set和List的区别如下:
            Collection对象之间没有指定的顺序,允许有重复元素和多个null元素对象;它是Set和List接口的父类,是一种最通用型的集合接口;

分享到:
评论

相关推荐

    Java基础知识点总结.docx

    &lt; java.util &gt; Collection接口 77 &lt; java.util &gt;Iterator接口 78 &lt; java.util &gt;List接口 78 &lt; java.util &gt;Set接口 80 &lt; java.util &gt;Map接口 81 把map集合转成set的方法 82 使用集合的技巧 83 Collections--集合工具...

    Java 基础核心总结 +经典算法大全.rar

    《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...

    Java最新面试总结.docx

    此word文档全面总结了最新面试在中遇到的面向对象分析OOA、面向对象设计OOD、面向对象编程OOP以及Java线程、Java集合类、Java垃圾收集、Java小应用程序Applet、Swing、Servlet、JSP相关面试常见问题解析,不仅对找...

    java 面试题 总结

     GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...

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

    从下图可以看出,在 Java 中除了以 Map 结尾的类之外, 其他类都实现了 Collection 接⼝。 并且,以 Map 结尾的类都实现了 Map 接⼝。 说说 List,Set,Map 三者的区别? List (对付顺序的好帮⼿): 存储的元素是有序...

    JAVA基础课程讲义

    第一个JAVA程序的总结和提升 20 常用Java开发工具 20 常用dos命令 21 本章笔试作业 21 本章上机操作 21 第二章(1) 编程的基本概念 22 注释 22 标识符 22 关键字/保留字 23 变量(variable) 24 常量(Constant) 25 命名...

    Java面试宝典2010版

    44、请写出你最常见到的5个runtime exception。 28 45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 29 46、java中有几种方法可以实现一个线程...

    观看韩顺平Java的 所做的笔记 到互斥锁 其中里面有我很多心得 老手可以用来复习 新手可以用学习 也可以当做参考 来做笔记

    包装类 String 类 字符串的特性 String 类的常见方法 StringBuffer 类 Math 类 Arrays 类 System 类 日期类包括1代2代3代 集合 集合的框架体系 Collection 接口和常用方法 Collection 接口实现类的特点 List 接口和...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    Java学习笔记-个人整理的

    {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{...

    springmybatis

    后来项目结束了,我也没写总结文档。已经过去好久了。但最近突然又对这个ORM 工具感兴趣。因为接下来自己的项目中很有可能采用这个ORM工具。所以在此重新温习了一下 mybatis, 因此就有了这个系列的 mybatis 教程. ...

    Tomcat内存溢出的三种情况及解决办法分析

    这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会...

    freemarker总结

    JAVA模版引擎Freemarker常用标签(一) 1. if指令 这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: &lt;#if condition&gt;... &lt;#elseif condition&gt;... &lt;#elseif condition&gt;......

    hibernate3.04中文文档.chm

    符合Java习惯的关系数据库持久化 目录 前言 1. 翻译说明 2. 版权声明 1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 ...

    Hibernate教程

    2.4. 总结 3. 体系结构(Architecture) 3.1. 概况(Overview) 3.2. 实例状态 3.3. JMX整合 3.4. 对JCA的支持 4. 配置 4.1. 可编程的配置方式 4.2. 获得SessionFactory 4.3. JDBC连接 4.4. 可选的配置属性 ...

    Hibernate中文详细学习文档

    符合Java习惯的关系数据库持久化 前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. ...

    HibernateAPI中文版.chm

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    hibernate3.2中文文档(chm格式)

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

Global site tag (gtag.js) - Google Analytics