天天看点

集合类概述1

       java.util包中提供了一些集合,这些集合又被称为容器。提到容器不难想到数组,集合与数组的不同之处时,数组的长度是固定的,集合的长度是可变的;数组用来存放基本数据类型的数据,集合用来存放对象的引用。常用的集合有:List集合,set集合和map集合,其中List集合与set集合继承了Collection接口,各接口还提供了不同的实现类。

       Collection接口是层次结构中的根接口。构成Collection的单位称为元素。Collection接口通常不能直接使用,但该接口提供了添加元素,删除元素,管理数据的方法。由于list接口与set接口都直接继承了Collection接口,因此这些方法对List和set集合是通用的。

Collection接口

Collection接口的常用方法

方法                                 功能描述

add(E e)                        将制定的对象添加到各集合中

remove(Object o)         将制定的对象从该集合中移除

isEmpty()                       返回Boolean值,用于判断当前集合是否为空

iterator()                        返回再次Collection的元素上进行迭代的迭代器。用于遍历集合中的对象

size()                              返回int值,获取该集合中的元素的个数

如何遍历集合中的每个元素呢》

通常遍历集合,都是通过迭代器(iterator)来实现。Collection接口中的iterator()方法可返回在此Collection进行迭代的迭代器。  

public class Collection接口 {
    public static void main(String[] args) {
        Collection<String>list = new ArrayList<>();//实例化集合类对象
        list.add("a");
        list.add("b");
        list.add("c");
        Iterator<String>iterator = list.iterator();//创建迭代器
        while (iterator.hasNext()){//判断是否有下一个元素
            String str = iterator.next();//获取集合中的元素
            System.out.println(str);

        }
    }
}      
结果:
      
集合类概述1

List集合

List集合包括List接口以及List接口的所有实现类。List集合中的元素允许重复,各元素的顺序就是对象插入的顺序。类似java数组,用户可通过使用索引(元素在集合中的位置)来访问集合中的元素。

List接口继承了Collection接口,因此包含了Collection中的所有方法,因此,List接口还定义了以下两个方法。

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

set(int index,Object obj):将集合中指定的索引位置的对象修改为指定的对象

List接口的常用实现类有ArrayList与LinkedList.

ArrayList类实现了可变的数组,允许保存所有元素,包括null,并可以根据索引位置对集合进行快速的随机访问:缺点是向指定的索引位置插入对象或删除对象的速度较慢。

LinkedList类采用链表结构保存对象。这种结构的优点是便于向集合中插入和删除对象,需要向集合中插入,删除对象时。使用LinkedList类实现的List集合的效率较高;但对于随机访问集合中的对象,使用LinkedList类实现的效率较低。

使用List集合时通常声明为List类型,可通过不同的实现类来实例化集合。

public class List集合 {
    public static void main(String[] args) {
        List<String>list = new ArrayList<>();//创建集合对象
        list.add("a");
        list.add("b");
        list.add("c");
        int i = (int)(Math.random()*(list.size()-1));//获得0-2之间的随机数
        System.out.println("随机获取数组中的数:"+list.get(i));
        list.remove(2);//将指定索引位置的元素从集合中移除
        System.out.println("移除后数组中的元素:");
        for (int j = 0;j<list.size();j++){
            System.out.println(list.get(j));
        }
    }
}      
结构: