【javaSE】Collection框架及List集合

************************************************************************
  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************

在事件的开发中,需要将使用的对象存储于特定的数据结构的容器中。JDK提供集合框架Collection和map

l  接口Collection包括两个子接口:接口List和接口Set


List接口包括两个实现类:ArrayList,LinkedList类


Set接口包括两个实现类:HashSet,TreeSet类

map接口包括两个实现类:HashMap和TreeMap类

4.1 Collection接口的常用方法


int size(); 返回包含对象的个数


boolean isEmpty(); 返回是否会空


void clear() ;清空集合


boolean add(E e);向集合添加对象


boolean remove(Object o):从集合中删除对象


boolean addAll(Collection<? extends E> c):将另一个集合的所有元素添加集合中


Boolean removeAll(Collection<?> c);删除集合中和另外一个集合相同的全部元素


Iterator<E> iterator(); 返回集合的迭代器

4.2 ArrayList和LinkedList

List接口是Collection的子接口,用于定义线性表数据结构;List接口的两个常见实现类为ArrayList和LinkedList分别用动态数组和链表的方式实现List接口。可以认为ArrayList和LinedList的方法逻辑上完全一样,但是性能有一定的差别。ArrayList适合于随机的访问,而LinkedList更适合于插入和删除;

ArrayList用动态数组实现List,可以通过下标迅速的索引到对应的元素,但是元素的插入删除时需要移动较多元素

ListedList用链表实现List,在删除或者插入时,只需要改变链接”指针“既可以实现;

4.3 List的常用方法

4.3.1 List继承Collection类的方法

List接口的实现类实现了Collection定义的方法

List list=new ArrayList();

//add方法将对象的引用添加到集合中

list.add(“one”);

//List的实现类重写了toString方法,一次调用包含对象的toString方法

list.toString();

//size方法返回当前集合存放对象的数量

list.size();

//clear方法清空集合

list.clear();

list.isEmpty();

//List实现类实现的contains方法用于判断集合中是否包含某一个对象。具体的逻辑是:依次调用集合所包含的对象的equals方法与待判断对象比较;因此集合对象,需要妥善的重写equals方法。

list.contains(p)

//remove方法同样和对象的equals方法相关。

list.remove(p);

//addAll方法将另外一个集体的元素全部添加进来

list1.addAll(list2)

//removeAll 删除所有与另外一个集合相同的元素

list1.removeAll(list2)

//retainAll保留与另外一个集合相同的元素,取交集。

toArray方法,将集合中的对象以对象数组的方式返回。例如

String[] arry=(String[])list.toArray(new String[]{})

4.3.2 List类定义的方法

List类根据线性表的特点定义了一系列的方法。

get方法根据下标获取相应的元素,例如list.get(i).toString();

set方法根据下标参数,将改元素设置的指定的元素并且可以返回改下标原始的数据。

Object obj=list.set(2,”三”)

利用此特性,可以实现第i元素和第j元素的互换

list.set(j,list.set(i,list.get(j)))

List对象重载了带下标的add的方法,改方法的作用为插入,插入到原有的list线性表中,根据下标的位置,在下标原有数据前插入,即下标对应的元素之后的所有元素往后移动存储。

List对象重写了带下标的remove方法,remove之后,下标+1之后的全部元素向前移动存储,返回更改之后的新的List对象

Object obj=list.remove(1);

用于检索对象,List提供了indexOf,lastIndexOf方法,也是调用了对象的equals方法。

4.3.3 List迭代器

所有Collection的实现类都实现了iterator迭代器方法,改方法返回一个Iterator接口类型的对象。Iterator定义了三个方法:

Boolean hasNext();判断指针后面是否有元素

E next();指针后移,返回当前的元素

void remove(); 在原集合中删除刚刚返回的元素

对应List集合而言,可以通过基于下标的get方法进行遍历;而iterator方法时针对Collection接口设计,所有实现了Collection接口的类都可以使用Iterator实现迭代遍历

常用的设计模式为:

List list=new ArrayList();

Iterator it=list.iterator();

while(it.hasNext()){

Object obj=it.next();

if(“#”.equals(obj)) it.remove();

}

************************************************************************
  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************
时间: 2024-10-10 21:49:47

【javaSE】Collection框架及List集合的相关文章

JavaSE Collection集合

集合:是java中提供的一种容器,可以用来存储多个对象.可是我们前面学习的数组也是可以保存多个对象的,为什么还要提供集合容器呢?集合和数组它们有啥区别呢? 数组的长度是固定的.一旦创建完成不能改变长度.并且只能保存同一类型的数据. 集合的长度是可变的.会随着保存的元素个数的增加而扩容.并且可以保存不同类型的数据. 集合按照其存储结构可以分为两大类,分别是: 单列集合java.util.Collection 双列集合java.util.Map Collection:是单列集合类的顶层父接口,它有两

介绍Collection框架的结构;Collection 和 Collections的区别

介绍Collection框架的结构:Collection 和 Collections的区别 集合框架: Collection:List列表,Set集 Map:Hashtable,HashMap,TreeMap Collection  是单列集合 List   元素是有序的.可重复 有序的 collection,可以对列表中每个元素的插入位置进行精确地控制. 可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素. 可存放重复元素,元素存取是有序的. List接口中常用类 l Vec

Collection框架

Collection框架 集合框架(Collection Framework)泛指java.util包的若干个类和接口.如Collection,List,ArrayList,LinkedList,Vector(自动增长数组),HashSet,HashMap等. 集合框架中的类主要封装的是典型的数据结构,如动态数组,链表,堆栈,集合,哈希表等. 集合框架类似编程中经常用到的工具类,使得编码这专注于业务层的实现,不需要从底层实现相关细节—“数据结构的封装”和”典型算法的实现”. 1. Collect

Java编程手冊-Collection框架(上)

该文章所讲内容基本涵盖了Collection里面的全部东西,尽管基于jdk 1.5的.可是思路非常清晰 1.引言 1.1 Collection框架的介绍 尽管我们能够使用数组去存储具有同样类型的元素集合(包含基本类型和对象类型),可是数组不支持所谓的动态内存分配,一旦分配之后,它的长度就是固定的,无法改变,另外,数组是一个简单的线性结构.在我们的实际开发中,可能会须要更复杂的数据结构.比如linked list, stack, hash table, sets, 或者 trees. 在Java中

Collection框架简略

Collection框架的结构: 一.Collection结构框架图: 二.Set.List.Queue.Map Set:collection的派生接口,不允许重复元素--equal(),取出元素的方法只有迭代器. HashSet:按Hash算法查找.存取性能好:顺序不定:非同步,线程不安全:元素可为null.(hash意义在于快速查找,根据元素的值便可快速查找其储存位置) LinkedHashSet:Hashset 的子类,也是按hashcode决定储存位置,但用链表维护,使得元素顺序与添加顺

第14章 集合框架(1)-List集合的各种类

1.概述 1.1.Java集合框架的由来 1.2.什么是集合框架? 1.3.为什么需要集合框架 1.4.常用的框架接口规范 2.Vector类 2.1.存储原理 2.2.构造方法 2.3.常用方法 3.Stack类 3.1.什么是栈 3.2.栈的构造方法和常用方法 4.ArrayList类 5.LinkedList类 5.1定义 5.2.常用方法 1.概述 1.1.Java集合框架的由来 刚开始的时候java只有Vetor,Stack,Hashtable这些同容器类用来保存大量的对象.容器类是可

【java】Collection框架

★存储对象:数组.集合对象多了用集合存,数据多了用对象存★数组和集合的不同? 数组长度是固定的,集合长度是可变的 数组中只能存储同一类型的对象,而集合中存储的只要是对象就行 ★集合框架:是不断向上抽取共性出来的  Collection框架中包含了大量集合接口以及这些接口的实现类和操作它们的算法(比如排序.迭代.查找等等),collection主要提供了List(列表).Queue(队列).Set(集合).Stack(栈)和Map(映射表,用于存放键值对)等数据结构,其中List.Queue.Se

java中Collection框架的讲解

下面要开始java中相关集合框架的学习啦. Are you ready?Let's go~~ 今天要讲解的Java中的Collection框架. 1) 首先查看jdk中Collection类的源码后会发现如下内容: ... * @see AbstractCollection * @since 1.2 */ public interface Collection<E> extends Iterable<E> { // Query Operations 通过查看可以发现Collecti

Java编程手册-Collection框架(下)

5.  Set<E>接口与实现 Set<E>接口表示一个数学的集合,它不允许元素的重复,只能包含一个null元素. Set<E>接口声明了下面抽象方法. boolean add(E o) // add the specified element if it is not already present boolean remove(Object o) // remove the specified element if it is present boolean con