zoukankan      html  css  js  c++  java
  • 集合基本知识

    Java中,如果一个Java对象可以在内部持有若干其他Java对象,并对外提供访问接口,我们把这种Java对象称为集合,故Java的数组也可以看作是一种集合。集合的原因有两个:一、数组初始化后大小不可变;二、数组只能按索引顺序存取

    集合总体框架

    Java 集合框架为不同类型的集合定义了大量接口,集合有两个基本接口:Collection 和 Map。

    Collection

    Java标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集合类的根接口。Java实现的集合类主要有两个特点,一是实现了接口和实现类相分离,例如,有序表的接口是List,具体的实现类有ArrayList,LinkedList等,二是支持泛型,我们可以限制在一个集合中只能放入同一种数据类型的元素,最后,Java访问集合总是通过迭代器(Iterator)来实现,它最明显的好处在于无需知道集合内部元素是按什么方式存储的。Java的java.util包主要提供了以下三种类型的集合:

    List:一种有序列表的集合

    Set:一种保证没有重复元素的集合

    Map:一种通过键值(key-value)查找的映射表集合

    此外,由于历史原因,有小部分集合已经不推荐使用了,但是又不能直接从包中删除,因为可能会影响别的基础包,例如:

    Hashtable:一种线程安全的Map实现;

    Vector:一种线程安全的List实现;

    Stack:基于Vector实现的LIFO的栈;

    为什么不推荐使用呢,线程安全但是性能不佳,重点是这是最初的实现,现在已被java.util.concurrent包里的集合代替了,还有不推荐使用的接口Enumeration<E>:已被Iterator取代,还有一个小细节:链表与泛型集合之间有一个重要的区别,链表是一个有序集合(ordered collection), 每个对象的位置十分重要。

    List

    在集合类中,List是最基础的一种集合:它是一种有序列表。List的行为和数组几乎完全相同,放入元素的先后顺序存放,每个元素都可以通过索引确定自己的位置,List的索引和数组一样,从0开始。也正是因为这些特性,所以List集合也是用的最多的集合;主要接口有:

    在末尾添加一个元素:void add(E e)

    在指定索引添加一个元素:void add(int index, E e)

    删除指定索引的元素:int remove(int index)

    删除某个元素:int remove(Object e)

    获取指定索引的元素:E get(int index)

    获取链表大小(包含元素的个数):int size()

    List接口有两种实现,一种通过数组实现的ArrayLIst,还有一种是通过链表实现的LinkedList,主要区别是:

    通常选用ArrayList集合,需要经常查找可用ArrayList集合,经常增删就用LinkedList集合

    List的特点

    List接口允许我们添加重复的元素

    允许添加null

    List的遍历

    我们可以用用for循环根据索引配合get(int)方法遍历,但是不推荐这么使用,原因有两个,一是代码复杂,二是因为get(int)方法只有ArrayList的实现是高效的,换成LinkedList后,索引越大,访问速度越慢。所以,遍历List集合一定要用迭代器Iterator!

    欢迎大家批评指正,指出问题,谢谢!

  • 相关阅读:
    js模拟点击加载事件代码
    js添加节点
    js数字随机产生并相加
    转:Selenium借助AutoIt识别上传(下载)详解
    [原创] web_custom_request 与 Viewstate
    转:浏览器与WEB服务器工作过程举例
    转:WebDriver(Selenium2) 处理可能存在的JS弹出框
    转:Loadrunner报错“Too many local variablesAction.c”解决方法
    转:loadrunner关联及web_reg_save_param方法浅析
    转:性能测试流程剖析
  • 原文地址:https://www.cnblogs.com/yhcTACK/p/15395326.html
Copyright © 2011-2022 走看看