Java集合简单介绍

一. 前言1:集合只能存放对象。

        重要的话放前面说,也很好理解,比如我们看到的代码里都是这样写的,ArrayList al=new ArrayList();这就说明int类型会自动转换成Intger类再存入集合中。

贴一下参考的链接:https://www.cnblogs.com/lixiansheng/p/11348050.html

二. 前言2:Iterator是Collection系列集合的顶层接口,Collection extends Iterable

        Iterator是Collection系列集合的顶层接口,因为Collection源码里第一句话就是(而Iterator和Iterable的联系后面提到):

public interface Collection<E> extends Iterable<E> 
三. 为什么需要集合,集合的由来

        在常规编程时,我们需要在任何时候,任何地点创建任意数量的对象,而这些对象用什么容纳呢?即集合,即集合使用来存放对象的。(为什么不用数组呢?后面介绍)

四. 集合是什么

        Java集合存放在java.util包中,是一个用来存放对象的容器。
        注意:
        1,集合只能存放对象。比如存入一个int类型的数据放入集合中,其实它是自动转换成Integer类后放入的。
        2,集合存放的都是对象的引用,而非对象本身。所有我们称集合中的对象就是集合中对象的引用。对象本身还是放在堆内存中的。

五. Java中的集合有哪些

        java中集合类存放于Java.util包中,主要是这3中:set(集),list(列表,包括queue)和map(映射)。
(图中的依赖指的是依赖关系,而非继承啥的,依赖关系:假设A类的变化引起了B类的变化,则说名B类依赖于A类。)
在这里插入图片描述
        从图中我们可以看出:
        1,集合主要分为Collection和Map接口。
        2,Collection又分别被List,Set和Queue继承。
        3,Iterator是一个用来遍历集合中的元素的接口。除了map系列的集合都是西安了Iterator即可,可以之间调用Iterator的方法,map系列的集合遍历自身时,可以间接调用Iterator()方法。
        4,List被AbstractList实现,然后分为3个子类ArrayList,LinedList和Vector。
        5,Set被AbstractSet实现,又分为两个子类,HashSet和TreeSet
        6,Map被AbstractMap实现,又分为2个子类,HashMap和TreeMap,Map还有个Hashtable子类
        7,Map被Hashtable实现

六. 各集合的特点

Java各集合都有不同的特点:
        List是非常常用的数据类型,List是有序的Collection
        Set体系的集合用于存储无序元素,且值不能重复。
        Map系列存储键值对
具体实现类的特点如下图:
在这里插入图片描述
在这里插入图片描述

七. Iterator迭代器(及Iterator和Iterable的联系)
7.1 Itertor迭代器

        Iterator迭代器是Java集合的顶层接口(不包括Mao系列)。Iterator中有3个方法:
        1,Object next();返回迭代器刚越过的元素的引用,返回值是Object,需要强制转换为自己需要的类型。
        2,boolean hasNext():判断容器内是否还有可供访问的元素。
        3,void remov():删除迭代器刚刚越过的元素。

7.2 Itertor和Iterable的联系

        在前言里我们也有讲到,Collenction接口继承了Iterable,那么Iterable和Itertor有什么联系和区别呢?

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

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

        下面看一个使用Iterator迭代器的例子:

import java.util.*;

public class test{
    public static void main(String[] args) {
        // 产生一个List集合,典型实现为ArrayList。
        List<String> list = new ArrayList<String>();
        /* List list = new ArrayList();结果出错
        注:test.java使用了未经检查或不安全的操作。
        注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
         *这样的情况下要用泛型,容器里不能放object而是放具体类型。
         */

        //添加三个元素
        list.add("Tom");
        list.add("Bob");
        list.add("Jack");
        //构造List的迭代器
        Iterator it = list.iterator();
        //通过迭代器遍历元素
        while (it.hasNext()){
            Object obj = it.next();
            System.out.println(obj);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值