集合:用于存储对象的容器。集合中可以存储任意类型的对象,长度可变。

集合和数组的比较

  1. 集合和数组都是存储对象的容器,不同的是,数组可以存储基本数据类型(int、short、long、char、Boolean、double、float、byte),集合只能存储任意类型的对象。
  2. 数组长度是固定的,集合的长度是可变的(根据加载因子和扩容增量来完成扩容)。

数组操作复杂,在java中可用方法少,集合操作简单,有很多操作方法。

对于集合,顶层都实现了Iterable接口,表明集合都是可迭代的,可以视同iterable()方法获取集合对于的迭代器,也可以使用增强的for循环进行迭代。

1、Collection:collection为所以集合的定级接口,继承了Iterable类,表明所有集合类都是可迭代的。

2、List: 实现了Collection接口,存储的数据是有序的、可重复的,可通过索引进行元素访问。

3、ArrayList:底层实现为数组,线程不安全,查找效率高,增删效率低。

4、Vector:由下图可知vector和ArrayList实现原理相同,但是vector是线程安全的(synchronized),效率略低于ArrayList。

5、Stack:继承Vector,是一个先进后出的栈。

6、LinkedList:底层实现为双向链表,进行元素的增删效率高,查询效率低。

7、Queue:队列,先进先出(FIFO)

8、Set:存储的元素是无序的、唯一的。在程序运行中,如果使用add添加一个已经存在的元素,将返回false。

9、HashSet:底层实现为哈希表(链表+数组),线程不安全,查找效率高,增删效率低,通过元素的hashCode和equels方法保证了元素的唯一性。

上图为HashSet底层实现模式哈希表(数组+链表),当一条链上元素超过8个以上后,会自动转换为红黑树来存储元素,提高查询效率。

11、TreeSet:底层实现为二叉树,线程不安全,可对元素进行自动排序,保证元素唯一性的方式是compareTo方法返回0。

12、LinkedHashSet:底层实现为链表和哈希表,线程不安全,存储的元素时有序的、唯一的,通过元素的hashCode和equels方法保证了元素的唯一性。

Arrays:类Arrays为集合的工具类,可使用该类的方法对集合进行排序、转换为list等操作。

Collections:为所有直接或间接实现了Collection接口的集合类的工具类,该类封装了对集合的各种操作,如排序、反转、替换等操作。

java collection集合的更多相关文章

  1. ------------------java collection 集合学习 ----小白学习笔记,,有错,请指出谢谢

    <!doctype html>java对象集合学习记录 figure:first-child { margin-top: -20px; } #write ol, #write ul { p ...

  2. JAVA collection集合之 扑克牌游戏

    主要内容:这里使用collection集合,模拟香港电影中大佬们玩的扑克牌游戏. 1.游戏规则:两个玩家每人手中发两张牌,进行比较.比较每个玩家手中牌最大的点数,大小由A-2,点数大者获胜.如果点数相 ...

  3. Java Collection集合方法

    一.简单方法 package cn.itcast.day15; import java.util.ArrayList; import java.util.Arrays; import java.uti ...

  4. Java Collection集合中的iterator方法

    Iterator接口的概述 /** * java.util.Iterator接口:选代器(对集合进行遍历) * 有两个常用的方法 * boolean hasNext() * 如果仍有元素可以迭代,则返 ...

  5. Java Collection集合概述及其常用方法

    Collection集合概述 Java数组的长度是固定的,为了使程序能够方便地存储和操作数目不固定的一组数据,JDK类库提供了Java集合 与数组不同的是,集合中不能存放基本类型数据,而只能存放对象的 ...

  6. Java——Collection集合、迭代器、泛型

    集合 ——集合就是java提供的一种容器,可以用来存储多个数据. 集合和数组的区别 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值. 集合存储的都是对象 ...

  7. Java——Collection集合

    ##Collection集合 1.Collection集合是单列集合 2.Collection是所有单列集合最顶层的接口,定义了所有单列集合的共性方法 任意的单列集合都可以使用Collection接口 ...

  8. Java Collection集合接口

    Collection接口是赖以集合框架建立的基础.它声明的所有集合的核心方法.这些方法概括于下表中. 因为所有集合都要实现Collection,熟悉它的方法是对框架有清晰的认识很有必要.这几种方法都可 ...

  9. Java Collection开发技巧

    Java Collection(集合) 集合中的一些技巧: 通过Collections类的静态方法,可以对集合进行一些操作 1 java.util.List<Integer> number ...

随机推荐

  1. ubuntu破解密码方法

    摘要: 开机按住任何键(shift)停住grub菜单,进入advanced option for ubuntu,出现的菜单中,光标移动至…(recovery mode)按E进入编辑,找到ro reco ...

  2. dede网站目录权限设置

    如果你的网站数据十分重要(那种两天就能弄好的垃圾站就算了),建议按本文所说的安全步骤进行严格的设置.1.目录权限 我们不建议用户把栏目目录设置在根目录, 原因是这样进行安全设置会十分的麻烦, 在默认的 ...

  3. javaee 第14周

    1.web server Web Server中文名称叫网页服务器或web服务器.WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务.Web服务器可以解析( ...

  4. Java 游戏报错 看不懂求教

    Java 飞机小游戏 报错 看不懂求救 at java.awt.Component.dispatchEvent(Unknown Source)at java.awt.EventQueue.dispat ...

  5. 如何快速上手基础的CSS3动画

    前言 说起CSS3动画,就必须说说 transform,translate,transition,animation这4个属性,transform主要定义元素的动作,比如旋转.倾斜.位移等,trans ...

  6. DFS || HDU 2181

    题意:一个规则的实心十二面体,它的 20个顶点标出世界著名的20个城市,你从一个城市出发经过每个城市刚好一次后回到出发的城市. 前20行的第i行有3个数,表示与第i个城市相邻的3个城市.第20行以后每 ...

  7. 计算机网络之传输层 下(TCP)

    1. TCP的特点 特点:它是一个点到点的通信机制,只能有一个发送方和一个接收方:它提供是一个可靠的,按序的字节流机制:使用流水线机制,通过拥塞控制和流量控制的机制设置窗口尺寸:发送方和接收方都有缓存 ...

  8. 详解Spring面向切面编程(AOP)三种实现

    一.什么是AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善. ...

  9. (10) openssl dhparam(密钥交换)

    openssl dhparam用于生成和管理dh文件.dh(Diffie-Hellman)是著名的密钥交换协议,或称为密钥协商协议,它可以保证通信双方安全地交换密钥. 但注意,它不是加密算法,所以不提 ...

  10. 第五讲:Fast RTL-level verification

    1.good code styles 2.+rad compile time switch  for compile 1.了解VCS 的架构  <===这方便了解不多 parser / even ...