`

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 collection framework

    除了标准的集合框架之外,Java 还包含了一些历史遗留的集合类,如 `Vector`, `Stack`, `Hashtable` 等,这些类虽然已经不再推荐使用,但在老代码中仍然常见。它们的特点主要是线程安全,但性能较低。 #### 五、算法...

    Understanding_Java_Garbage_Collection_v4.pdf

    本文档是一份详细探讨Java垃圾回收机制及其影响的白皮书,标题为《Understanding Java Garbage Collection v4.pdf》,旨在帮助Java开发者和架构师理解垃圾回收器的应用行为、特性和机制,并在Java平台上选择和调整...

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

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

    java常见笔试题目总结

    ### Java常见笔试题目总结 #### 1. `super()`与`this()`的区别? - **`super()`**:在子类的构造方法中调用父类的构造方法,必须作为第一行代码出现。它用于初始化继承自父类的成员变量。 - **`this()`**:在同一...

    java面试常见问题总结word版

    以上只是Java面试中常见的部分知识点,实际面试可能还会涵盖更多主题,如多线程、IO流、设计模式、JVM内存模型、异常处理、Spring框架等。深入理解和掌握这些概念对于成为一位优秀的Java开发者至关重要。

    javaAPI学习总结

    Java API 学习总结 Java 是一种广泛使用的面向对象的编程语言,它的API(Application Programming Interface)提供了大量的类和接口,使得开发者能够高效地构建各种应用程序。本文将重点关注Java的基础知识,特别是...

    java中高级面试题十大总结

    - 垃圾回收(Garbage Collection, GC)是Java自动管理内存的重要机制,它负责清理不再使用的对象,避免内存泄漏。 - 垃圾回收器有多种策略,如Serial、Parallel、CMS、G1、ZGC等,每种都有不同的优缺点和适用场景...

    java常见概念题

    ### Java常见概念题详解 #### 同步与异步的区别及应用场景 **同步与异步的概念:** 在Java中,同步(synchronous)与异步(asynchronous)是处理多线程环境中数据共享的重要概念。 - **同步**指的是在多线程环境...

    The Java Garbage Collection Mini Book

    总结而言,《The Java Garbage Collection Mini Book》涵盖了JVM垃圾回收机制的广泛知识,不仅包括了理论基础,还有针对具体收集器的深入分析,为读者提供了一个全面的学习资源。对于那些希望深入理解Java内存管理的...

    java基础总结文档

    【Java基础总结】 Java是一种广泛使用的面向对象的编程语言,具有丰富的类库和强大的功能。以下是对Java基础知识的总结,适合长时间未接触Java的人快速查阅,同时也非常适合初学者学习。 ### Eclipse相关 Eclipse...

    java.util包总结

    首先,Java.util包中最显著的变化是引入了类集(Collection)框架。类集框架是Java 2的一大亮点,它标准化了处理对象集合的方式,解决了早期Java中如Dictionary、Vector、Stack和Properties等类各自为政的问题。...

    java常见错误大全

    在这里,我们将总结和讨论 Java 中常见的错误和可能的解决方案。 1. 需要标识符 在 Java 中,标识符是变量、方法、类和其他标识符的名称。错误可能是由于没有在函数内声明变量或方法,或者使用了非法的标识符名称...

    Java面试题总结.doc

    2. **垃圾回收算法**:Java中常见的垃圾回收算法有Mark-Sweep、Copying、Mark-Compact和Generational Collection。Mark-Sweep通过标记-清除的方式回收内存;Copying将内存分为两部分,每次只使用一半;Mark-Compact...

    Java企业级开发综合技能知识总结

    ### Java企业级开发综合技能知识总结 #### Java面向对象 1. **super()与this()的区别?** - `super()`用于调用父类构造器,必须作为子类构造器的第一条语句出现。 - `this()`用于调用本类的其他构造器,也必须...

    java面试大全。各大公司面试总结。知识点总结,共31个文档

    还要知道Collection和Iterable接口,以及List、Set、Map接口。 5. **多线程**:理解线程的基本概念,如线程的创建、状态、同步机制(synchronized关键字,wait()、notify()、notifyAll()方法),以及线程池和并发...

    java内存泄露总结

    Java中的内存管理主要依赖于垃圾回收(Garbage Collection, GC)机制。与C/C++等需要手动管理内存的语言不同,Java虚拟机(JVM)自动处理对象的创建与销毁过程。当通过`new`或反射方法创建对象时,这些对象在堆...

    java知识点总结java知识点总结.doc

    Java知识点总结 1. JDK常用的包 JDK包含了许多核心包,如`java.lang`,它是所有Java程序的基础,包含了基本类型和运行时系统的基本类;`java.io`提供了输入/输出流处理;`java.util`包含集合框架、日期时间处理、...

    JAVA程序员面试笔试常见问题总结

    以下是一些 Java 面试中常见的问题及其详细解答: 1. **final, finally, finalize的区别**: - `final` 用于修饰类、方法和变量,表示不可变性或不可继承性。 - `finally` 是异常处理的一部分,确保代码块中的...

Global site tag (gtag.js) - Google Analytics