Java基础总结–常用集合类(八)

继续接上篇Java基础总结–String(七)

ArrayList

ArrayList是List接口的实现类

1、具有数组的特性,但弥补了数组的缺点

2、是一个长度大小可变的数组集合

3、提供通过索引取值的方法

4、可以存放任意类型的对象

5、提供了灵活的添加、删除、查找对象的方法

6、取值的时候都是以Object类型返回

ArrayList类构造方法

1、public ArrayList (int initialCapacity)

构造一个具有指定初始容量的空列表

2、public ArrayList ( )

构造一个初始容量为 10 的空列表。

3、public ArrayList (Collection  c)

构造一个包含指定 collection 的元素的列表

ArrayList 实例的初始容量是指定 collection 大小的 110%。

ArrayList常用方法

Java基础总结--常用集合类(八)

方法说明

public boolean add(E o) 追加元素到此列表的尾部

public void add(int index, E element) 将元素插入此列表中的指定位置

public E remove(int index) 移除此列表中指定位置上的元素

public boolean remove(Object o) 从列表中移除指定元素的对象

public E get(int index)  返回此列表中指定位置上的元素

public E set(int index, E element)  用指定的元素替代此列表中指定位置上的元素。

public boolean isEmpty()  判断链表是否为空

public int size()  返回此列表中的元素数

public Object[ ] toArray() 返回所有元素的数组

Vector

Vector类提供的功能与ArrayList是一样的;

为什么有一个类似于ArrayList的Vector类?

1、Vector类是从0开始就存在的,属于元老级的类

2、考虑到以Java学习者的使用习惯,在后来的版本中将其保留

3、但从 jdk2.0开始Vectory类同样实现了List接口

4、Vector的实现是同步的

构造方法

1、public Vector()

构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。

2、public Vector(int initialCapacity)

使用指定的初始容量和等于零的容量增量构造一个空向量。

3、public Vector(Collection<? extends E> c)

构造一个包含指定集合中的元素的向量,这些元素按其集合的迭代器返回元素的顺序排列

Vector和ArrayList的区别

Java基础总结--常用集合类(八)

Vector和ArrayList在使用上非常相似,都可用来表示一组数量可变的对象应用的集合,并且可以随机地访问其中的元素。

Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。

当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

ArrayList和Vector在从指定位置取得元素,从容器的末尾增加和删除元素都非常的有效,所有的这些操作都能在一个常数级的时间(O(1))内完成。但是从一个其他的位置增加和删除一个元素就显得颇为费时,差不多需要的时间为O(n-i),这里的n代表元素个数,i代表要增加和删除的元素所在的位置。这些操作需花费更多的时间,因为你需要挨个移动i和更高位置的元素。那么,以上这些到底说明了什么呢?

这意味着,如果你取得一个元素,或者从数组末尾增加或删除一个元素的话,随便你使用Vector和ArrayList。如果你想要对数组内容做其他操作的话,那么就为自己好另一个容器吧。比喻说,LinkedList可以在常数级时间(O(1))内为任意一个位置的元素增加和删除。但是,取得一个元素,会稍微慢一点,时间要用O(i) ,这个i是元素的位置。通过ArrayList也是很简单的,因为你可以简单使用一个索引,而不是构造一个iterator 。LinkedList也为每个插入的元素建立一个内部对象。所以,你也必须知道,同时产生了垃圾对象。

HashMap

HashMap类认识

1、是以键-值(key-value)的方式存放数据的

2、key不允许重复

3、key,value允许为null

4、集合中存放的对象是无序的

HashMap类构造方法

1、public HashMap()

构造一个具有默认初始容量的空 HashMap。

2、public HashMap(int initialCapacity)

构造一个带指定初始容量的空 HashMap。

HashMap常用方法

Java基础总结--常用集合类(八)

HashMap小结

1、HashMap集合中的信息是以key-value的方式成对存放的;

2、key和value都是Object的

3、key是不能重复的,否则新value将替换旧value;

4、key和value都允许为null;

5、HashMap存放数据非线程安全的

未完待续...

下篇传送阵:Java基础总结–JDBC上(九)

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: