一、集合概述

    java集合类存放在java.util包中,是一个用来存放对象的容器。

 注意:

   1、集合只能存放对象,java中每一种基本数据类型都有对应的引用类型

    2、集合用来存放对象的引用,而非对象本身。所以我们称集合中的对象就是集合对象的引用。对象本身还是放在堆内存中。

    3、集合可以存放不同类型,不限数量的数据类型。

二、java集合框架

java 集合小抄 java中集合_List

注:Iterator是一个用来遍历集合中元素的接口,主要有hashnext(),next(),remove()三种方法:

从上图可以看出:

1.集合主要分为Collection和Map两个接口

2.Collection又分别被List和Set继承

3.List被AbstractList实现,然后分为3个子类,ArrayList,LinkList和VectorList。

4.Set被AbstractSet实现,又分为2个子类,HashSet和TreeSet。

5.Map被AbstractMap实现,又分为2个子类,HashMap和TreeMap。

6.Map被Hashtable实现。

三、Iterator迭代器

他是java集合的顶层接口(不包括map系列的集合,Map接口时map系列的集合的顶层接口)

Object next():返回迭代器的元素的引用,返回值时Object,需要强制转换为自己需要的类型。

boolean hasNext():判断容器内是否还有可供访问的元素。

void remove():删除迭代器的元素。

在collection系列的集合,我们都通过迭代器来对集合中的元素进行遍历。

注意:在源码中可以追溯到集合的顶级接口,比如:Collection接口,可以看到它继承的是类Itertable

public interface Collection<E> extends Iterable<E> {
    // Query Operations

注意事项:Iterator和Iterable的区别:

Iterable:存在与Java.until包中。

public interface Iterable<T> {
    /**
     * Returns an iterator over elements of type {@code T}.
     *
     * @return an Iterator.
     */
    Iterator<T> iterator();

可以看到,里边封装了Iterator接口。所以只要实现了Iterable接口的类,就可以使用Iterator迭代器了。

Iterator:存在于java.util包中。核心方法next(),hasNext(),remove().

使用案例:

package com.cn;


import java.util.*;

public class test {
	public static void main(String[] args) {
		// 产生一个list集合
		List<String> list = new ArrayList<String>();
		// 添加元素
		list.add("zhangsan");
		list.add("lisi");
		list.add("wangwu");
		// 构造List的迭代器
		Iterator it = list.iterator();
		// 通过迭代器遍历元素
		while (it.hasNext()) {
			Object next = it.next();
			System.out.println(next);
		}
	}

 

四、Collection接口介绍

Collect接口是层次结构中的根接口。构成Collection的单位成为元素。Collection接口通常不能直接使用,但该接口提供了添加元素、删除元素、管理数据的方法。

java 集合小抄 java中集合_迭代器_02

详细介绍如下:

int size() 获取集合元素的个数

boolean  isEmpty()  用于判断当前集合是否为空
 boolean contains(Object)  判断是否包含指定元素
 Iterator<E> iterator()  返回在此collection的元素上进行迭代的迭代器。用于遍历集合中的对象
 boolean add(E e)  将指定对象添加到该集合中boolean remove(Object o) 将指定集合从该对象中移除

以及操作整个集合的方法:

boolean containsAll(Collection<?> c);  判断是否包含有整个集合c的全部元素
boolean addAll(Collection<? extends E> c); 添加集合c的所有元素到本集合中,如果集合有改变                                                                           就返回true
boolean removeAll(Collection<?> c);删除本集合中含有c集合的元素,如果集合有改变就返回true
 boolean retainAll(Collection<?> c);只保留本集合中c集合中含有的元素,如果集合有改变就返回true
void clear();删除所有元素

操作数组的方法:

Object[] toArray(); 返回一个数组包含集合所有的元素

<T> T[] toArray(T[] a);返回一个数组包含集合所有的元素,运行时根据集合元素的类型指定数组的                                     类型

 

抽象类:AbstractCollection 实现Collection接口,主要实现contains(), isEmpty(), toArray(), remove(), clear() 这个几个操作。