`

java集合常用类介绍

阅读更多

   在java集合思考中介绍了JCF框架,那么JCF框架的常用类有哪些呢?

 
List接口:
一:ArrayList
    private static final int DEFAULT_CAPACITY = 10;
    private static final Object[] EMPTY_ELEMENTDATA = {}; 
    private transient Object[] elementData; 
    private int size; 
  用数组来存储元素,也就是基于 Object[]来管理元素,等于数组的加强版,在add()方法时先调用ensureCapacityInternal()方法来扩展容量。
二:LinkedList:
LinkedList<E>     extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable
实现了Deque,Cloneable接口:说明可以复制和具有队列的功能
继承了AbstractSequentialList抽象类,而AbstractSequentialList继承了abstactlist抽象类
   transient int size = 0;
    transient Node<E> first;
    transient Node<E> last;
具有两个属性: first,last,表示第一位和最后一位。
采用Node来表示表示每个元素。
Node是个内部静态类
    private static class Node<E> {
        E item;
        Node<E> next;
        Node<E> prev;
        Node(Node<E> prev, E element, Node<E> next) {
            this.item = element;
            this.next = next;
            this.prev = prev;
        }
    }
每个节点除了本身外,还有前后元素的引用,所有inkedList类是双向列表.
操作:
 private void linkFirst(E e)
private linkLast(E e)
特点:通过链表可以实现快速的插入,但是获取元素比较慢
而Arraylist.get()比较快,set()比较慢
 
Set接口:
1:特点:
A collection that contains no duplicate elements.  More formally, sets  contain no pair of elements e1 and e2such that 
 e1.equals(e2), and at most one null element..
也就是说我们可以用Set接口来存储非空的,不重复发到元素。
常用的类:HashSet和TreeSet
1:HashSet:无序集合,支持null值,采用Hash算法存放元素。
HashSet<E>     extends AbstractSet<E> implements Set<E>, Cloneable
 private transient HashMap<E,Object> map:
特点:
1:采用HashMap的key来存储集合
2:非线程安全:为了提高效率没有使用synchronized,所以如果多线程操作一个HashSet的话,则必须使用外部锁。
3:获取元素要通过iterator()返回一个迭代器,因此具有fail-fast特性:fail-fast是指在对集合进行迭代的时候,如果某个线程对集合进行了修改,那么这个时候就产生了fail-fast错误。
 
TreeSet类:是一个有序集合,不支持null值,采用二叉树实现排序
   TreeSet<E> extends AbstractSet<E>  implements NavigableSet<E>, Cloneable, java.io.Serializable
    private transient NavigableMap<E,Object> m; 
    private static final Object PRESENT = new Object();
继承了 NavigableSet接口,采用NavigableMap来存储元素,其实就是TreeMap来存储元素,如果你对Treemap比较了解的话,对TreeSet也就没问题的
特性:
1:采用TreeMap的key来存放元素,
1:支持排序:final Comparator<? super K> comparator,有个Comparator排序实例,在put()的时候,会先调用compare()
2:非线程安全的,需要通过外部锁来保证线程安全。
总结:1:ArrayList适合于快速读取,修改操作比较少的集合。
2:LinkedList适合于修改操作比较多,读取比较少的集合。
3:HashSet适合于存储非空,不重复的无序集合元素,效率比较高。
4:TreeSet适合于存储非空,不重复的有序集合元素,效率比HashSet低。
参考资料:
分享到:
评论

相关推荐

    java常用集合类总结

    "Java集合类总结" Java集合类是Java语言中的一种重要数据结构,用于存储和管理数据。Java集合类可以分为两种:Collection接口和Map接口。Collection接口有两个子接口:List接口和Set接口。List接口是有序的,可以...

    Java常用类及集合操作

    集合(Collection)是Java集合框架的基础接口,它表示一个不重复元素的集合。集合框架主要包括以下几种主要类型的集合: - **列表(List)**:有序集合,允许重复元素。 - **集(Set)**:无序且不允许重复元素的...

    java工具类集合

    下面将详细介绍一些重要的Java工具类及其功能。 1. `java.util.ArrayList` 和 `java.util.LinkedList`: - `ArrayList` 是基于数组实现的动态列表,提供了添加、删除、查找和遍历元素的方法。它的操作时间复杂度与...

    java常用工具类集合(也有转自他人的)

    "java常用工具类集合"是一个综合性的资源,它包含了从不同来源收集的实用工具类,旨在帮助开发者提高效率,减少代码重复。下面,我们将深入探讨这个主题,分析其中可能包含的知识点。 首先,`opslabJutil-master....

    Java集合排序及java集合类详解.pdf

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

    JAVA中集合类一些常用类的总结

    本文将对Java中一些常用的集合类进行总结。 首先,ArrayList是List接口的一个实现,它允许我们在列表中按索引存取元素。在上述代码中,创建了一个ArrayList对象`list`并添加了不同类型的元素,包括字符串和自定义的...

    java集合思维导图

    Java集合框架主要包括接口和实现类两个层次。在接口层面,主要有`List`、`Set`和`Queue`三大接口,它们各自代表了不同的数据结构。`List`接口用于存储有序的元素,允许重复,并且可以按照索引访问;`Set`接口则存储...

    java常用系统类库实验

    ### Java常用系统类库实验详解 #### 实验概述与目标 本次实验主要聚焦于Java的预定义类,尤其是那些在日常编程中频繁使用的系统类库。实验旨在加深学生对Java预定义类的理解,掌握常用类的运用技巧,以及熟练方法...

    java,常用集合详解

    java, java常用集合类详解(有例子,经典呐!!!集合类糊涂的来看啊!!) 集合类详解

    Java 集合排序及java 集合类详解

    Java 集合排序及java 集合类详解,Java里面最重要、最常用也就是集合那部分了,能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本教程详细解释了关于Java中的集合是如何实现的, 以及他们的实现原理...

    Java常用工具类集合

    在Java编程语言中,工具类集合是一系列实用的类,它们提供了各种通用功能,帮助开发者更高效地编写代码。这些工具类通常包含在Java的`java.util`以及其他相关的包中,如`java.text`,`javax.imageio`,`javax.xml`等...

    Java集合排序及java集合类详解

    Java集合框架是Java编程语言中的一个核心组成部分,它为数据存储和操作提供了丰富的接口和类。在本篇中,我们将深入探讨Java集合的排序机制以及集合类的详细使用。 首先,我们来了解一下Java集合的基本分类。Java...

    一些java常用的工具类

    以下是对"一些java常用的工具类"的详细说明。 首先,工具类通常包含静态方法,这些方法不依赖于类的实例,可以直接调用,减少了对象创建的开销。这些类通常以“Utils”或“Helper”结尾,如Apache Commons Lang中的...

    java集合类详解

    Java集合类是Java语言中用来存储数据的结构,它们是Java开发中非常重要的组件。在Java 2平台之前,集合框架的组成较为零散,自Java 2平台的JDK 1.2版本之后,引入了集合框架(Collections Framework),为集合类提供...

    java集合类总结

    本文将对Java集合框架中的Collection接口及其相关接口、类进行深入的探讨。 首先,Collection接口是所有单值容器的基础,它是Set、List和Queue接口的父接口。Collection接口定义了通用的操作方法,如`add()`用于...

    集合框架,java中常用的集合类和接口

    Java 集合框架概述 Java 集合框架是 Java 语言中提供的一种统一的标准体系结构,...Java 集合框架是 Java 语言中的一种重要组件,提供了丰富的接口和类,简化了集合操作,并提高了编程效率、代码可读性和可维护性。

    Java类库 java中常用的类 可以参考

    本文档旨在介绍 Java 中一些常用的类库,帮助初学者更好地理解和使用这些类库。尽管文档内容并不全面,但包含了大多数常用的类库,对于新手来说较为易懂。 #### 二、Java 常用类库详解 ##### 1. `java.applet` - ...

    Java 集合类 简单Demo

    总的来说,这个示例着重介绍了Java集合框架的基本用法,包括创建、操作和遍历集合,以及一些常用的工具类方法。通过深入理解这些概念,开发者可以更好地设计和优化程序,提高代码的效率和可维护性。

    Java集合框架常用集合源代码及其实现

    Java集合框架是Java编程语言中的一个核心部分,它为数据结构和对象的存储、管理和操作提供了统一的接口和实现。这个框架包括了多种类型的集合,如List、Set、Queue和Map,以及它们的各种实现类,如ArrayList、...

    Java集合类原理详解.pdf

    ### Java集合类原理详解 #### 1. 集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。它提供了一种灵活高效的方式来存储和访问对象集合,支持多种数据结构,如列表(List)、集(Set)、映射...

Global site tag (gtag.js) - Google Analytics