Java-集合框架-介绍

1. 体系概述

  1. 集合就是存储对象最常用的一种方式
  2. 数组虽然也可以存储对象,但是长度固定;而集合的长度是可以变化的。数组中可以存储基本数据类型;集合只能存储对象。
  3. 集合用于存储对象,集合长度是可以变化的,集合可以存储不同类型的对象。
    在这里插入图片描述

为什么会出现这么多容器呢?
因为每一个容器对数据的存储方式都有不同,这个存储方式称之为:数据结构。

2. 共性方法

常用方法:
添加:add(Object obj), addAll()
删除:remove(), removeAll()
判断:contains(), containsAll(), equals()
取出:iterator()

步骤:

  1. 导入util包
  2. 创建一个集合容器,使用Collection接口的子类

注意:

  1. add(Object obj)方法的参数类型是Object,以便接收任意类型对象
  2. 集合中存储的都是对象的引用(地址)
package collectionDemo;

// 第一步导包
import java.util.*;
public class CollectionDemo {
    public static void main(String[] args) {

        // 第二步创建一个集合容器,使用Collection接口的子类,ArrayList
        ArrayList a1 = new ArrayList();
        ArrayList a2 = new ArrayList();
        //增、查、删
        baseFunction(a1);
        sop("...................................................");
        otherFunction(a1,a2);



    }

    public static void baseFunction(ArrayList a1){

        //1. 添加元素
        a1.add("shh1");
        a1.add("shh2");
        a1.add("shh3");
        a1.add(4);
        a1.add(5);

        //2. 获取个数,集合长度
        sop("size:"+a1.size());

        //3. 打印集合
        sop("初始化:"+a1);

        //4. 判断集合
        sop("判断java03是否存在:"+a1.contains("java03"));
        sop("判断集合是否为空:"+a1.isEmpty());


        //删除元素
        a1.remove(2);
        sop("删除索引为2的元素:"+a1);
        a1.remove("shh1");
        sop("删除元素shh1:"+a1);
        a1.clear();
        sop("清空集合:"+a1);
    }

    public static void otherFunction(ArrayList a1, ArrayList a2) {

        a1.add("shh1");
        a1.add("shh2");
        a1.add("shh3");
        a1.add("shh_gy");
        a1.add("gy_shh");

        a2.add("gy1");
        a2.add("gy2");
        a2.add("gy3");
        a2.add("shh_gy");
        a2.add("gy_shh");

        sop("a1:"+a1);
        sop("a2:"+a2);

        // 取交集
        a1.retainAll(a2);
        sop("取交集之后的a1:"+a1);

        a1.removeAll(a2);
        sop("移除a2中的元素之后的a1:"+a1);

    }

    public static void sop(Object obj){

        System.out.println(obj);
    }
}

结果:

size:5
初始化:[shh1, shh2, shh3, 4, 5]
判断java03是否存在:false
判断集合是否为空:false
删除索引为2的元素:[shh1, shh2, 4, 5]
删除元素shh1:[shh2, 4, 5]
清空集合:[]
...................................................
a1:[shh1, shh2, shh3, shh_gy, gy_shh]
a2:[gy1, gy2, gy3, shh_gy, gy_shh]
取交集之后的a1:[shh_gy, gy_shh]
移除a2中的元素之后的a1:[]

3 迭代器

什么是迭代器呢?
其实就是集合的取出元素的方式。

Iterator<E> iterator():以正确的顺序返回该列表中的元素的迭代器。

Iterator接口里面的常用的方法:

  1. boolean hasNext():如果迭代具有更多元素,则返回 true 。
  2. E next():返回迭代中的下一个元素。
package collectionDemo;

// 第一步导包
import java.util.*;
public class CollectionDemo {
    public static void main(String[] args) {

        method_get();

    }

    // 取出元素
    public static void method_get(){
        ArrayList a1 = new ArrayList();
        a1.add("shh1");
        a1.add("shh2");
        a1.add("shh3");
        a1.add(4);
        a1.add(5);

        // 获取迭代器,用于取出集合中的元素
        Iterator it = a1.iterator();

        while (it.hasNext()){
            sop(it.next());
        }

    }

    public static void sop(Object obj){

        System.out.println(obj);
    }
}

输出结果:

shh1
shh2
shh3
4
5
  1. 把取出方式定义在集合的内部,这样取出方式就可以直接访问集合内容的元素
  2. 那么取出方式就被定义成了内部类。
  3. 而每一个容器的数据结构不同。 所以取出的动作细节也就不同,但是有共性的内容——判断和取出,那么可以将写共性抽取。
  4. 那么这些内部类都符合一个规则,该规则是Iterator
  5. 如何获取集合的取出对象呢?通过一个对外提供一个iterator()方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值