容器是java中重要的一部分,其接口的结构如下

      Collection

        |

    ------------------        Map

    |        |        |

   Set       List      HashMap

    |

  HashSet

顾名思义,容器是用来存储东西的,对于对象,容器中存储的实质上是对象的引用,即对象的地址。

Collection接口有两个子接口Set和List,除了均是用来存储元素这个共性之外,分别具有不同的特点。

List类别的容器一般具有有序的特点,当元素插入删除时,维护了元素的顺序,并且可以放置重复元素。

Set类别的容器不允许放置重复元素,且一般是无序的。

Map类别的容器存储了对象和唯一可以标识该对象的主键的映射,不可以放置重复的主键。

List子类都是有序的,一般不用Collection接口来new List子类的的实例,这样会丢掉其中关于有序的

方法;当需要产生List子类实例时,应该用List接口进行new;因为所有对象都是Object的子类,故容器当中可以存放任意类型的对象。

package cn.learn.collection;

import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;
class Dog{ } public class Test {
public static void main(String[] args){
List list = new LinkedList(); list.add("aa");
list.add(new Date());
list.add(new Dog());
list.add(123);
System.out.println(list.size()); }
}

"aa"是字符串String引用类型,Dog是继承Object对象,123是通过自动拆箱和装箱机制包装成Integer来放入到

list当中。

LinkList底层实现是链表,插入删除较快、索引比较慢,不是线程安全的;

ArrayList底层实现是数组,插入删除较慢、索引比较快,不是线程安全的;

Vector底层实现也是数组,但是这个主要特点是线程安全的,效率略微低一些;

java容器学习的更多相关文章

  1. Java容器学习——List

    Java容器学习--List 基础知识 数组: ​ 优点:随机存取,可以快速访问元素 ​ 缺点:静态分配内存,存在空间闲置或者溢出现象:不适合进行插入和删除操作,需要移动大量元素. 链表: ​ 优点: ...

  2. java—容器学习笔记

    一:迭代器 刚开始学容器,做了个简单的练习题.. import java.util.ArrayList; import java.util.Collection; import java.util.I ...

  3. Java容器学习之ArrayList

    一.概述 ArrayList是java中十分常用的集合类,继承于AbstractList,并实现了List.RandomAccess.Cloneable和Serializable接口.ArrayLis ...

  4. java容器学习笔记

    容器 容器的组成 容器有两个接口Map和Collection. collection接口有List类和set类. List类可以分为:Vector.LinkedList.ArrayList.CopyO ...

  5. Java容器学习之List

    List接口继承了Collcetion接口,Collection接口又继承了超级接口Iterable,List是有序列表,实现类有ArrayList.LinkedList.Vector.Stack等. ...

  6. 设计模式学习笔记(十六)迭代器模式及其在Java 容器中的应用

    迭代器(Iterator)模式,也叫做游标(Cursor)模式.我们知道,在Java 容器中,为了提高容器遍历的方便性,把遍历逻辑从不同类型的集合类中抽取出来,避免向外部暴露集合容器的内部结构. 一. ...

  7. 【Java心得总结七】Java容器下——Map

    我将容器类库自己平时编程及看书的感受总结成了三篇博文,前两篇分别是:[Java心得总结五]Java容器上——容器初探和[Java心得总结六]Java容器中——Collection,第一篇从宏观整体的角 ...

  8. Java Web学习系列——Maven Web项目中集成使用Spring

    参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...

  9. Java容器:Set

    Set和数学中的集合十分类似,在Java中,Set是一种绝不会包含两个相等元素的存储结构.在阅读此文前请阅读Java容器:Map. Set方法 增添方法: boolean add(E e); bool ...

随机推荐

  1. Android Fragment学习笔记(二)----Fragment界面添加和管理

    Fragment界面添加 了解过fragment的生命周期等简单知识,于是去看官方文档来了解更多相关内容,要添加fragment到我们的UI界面中,给出了两种常用的方法,第一个是在activity的布 ...

  2. Almost Sorted Array

    http://acm.hdu.edu.cn/contests/contest_showproblem.php?cid=646&pid=1006 #include<iostream> ...

  3. Loadrunner中参数化实战(7)-Unique+Each iteration

    参数化数据30条: 脚本如下,演示登录,投资,退出操作是,打印手机号: 首先验证Vugen中迭代: Unique+Each iteration 设置迭代4次Action 结果如下:

  4. 网页打印A4纸-----表格在跨页时自动换页打印的实现 (转)

    在最近所做的一个项目中,需要通过网页来打印不少的表单,但是又不想每个打印页签各占用一个页面,这样就需要生存很多不同的冗余页面,为了减少冗余,所有的表单通过jquery的页签tab来实现的. 一 :基本 ...

  5. SpringMVC解析5-DispatcherServlet逻辑细节

    MultipartContent类型的request处理 对于请求的处理,spring首先考虑的是对于Multipart的处理,如果是MultipartContent类型的request,则转换req ...

  6. 手机页面的meta标签

    <meta charset="utf-8"/><meta name="viewport" content="width=device ...

  7. css整理-03 文本

    缩进和水平对齐 缩进文本:text-indent 可以设置为负值 可以为所有块级元素应用,但无法应用到行内元素,图像之类的替换元素: 水平对齐: text-align left,center,righ ...

  8. Gym 100814C Connecting Graph 并查集+LCA

    Description standard input/output Statements Alex is known to be very clever, but Walter does not be ...

  9. 在WPF下快速生成线的方法

    如果线较多时,在画布中用Path或Line生成时会比较慢.用DrawingVisual可以快速生成,这个在之前我的博客中已经提到.但在类库形式下生成的无法看到,保存成Image后再加入图层后成功显示. ...

  10. BZOJ3564 : [SHOI2014]信号增幅仪

    先把所有点绕原点逆时针旋转(360-a)度,再把所有点横坐标除以放大倍数p,最后用随机增量法求最小圆覆盖即可. 时间复杂度期望$O(n)$ #include<cstdio> #includ ...