Java-集合基本介绍

一. 为什么需要集合

    数组:①长度在创建时需要定义, 且固定不可变
            ②保存的内容必须是同一类型的元素
            ③使用数组进行增加和删除元素比较困难
    集合:①可以动态存储任意多个对象, 使用方便
            ②Java提供了一系列方便操作对象的方法: add, remove, set, get(增删改查)等
            ③使用集合对内容的添加, 删除元素更方便

二.集合的基本框架

1.基本介绍

        ①分为两类: 单列集合, 双列集合
        ②Collection接口下有两个重要的子接口List, Set, 均属于单列集合
        ③Map接口的实现子类是双列集合, 按照K-V的方式进行存放

2.框架示意:

三.Collection接口和常用方法

Collection类型和继承关系:

源码: public interface Collection <E> extends Iterable<E>

    1.介绍

        ①Collection实现子类可以存放多个元素, 每个元素可以是 Object 类型, 即任意类型
        ②有些 Collection 的实现子类, 可以存放重复的元素, 有些不能存放重复元素
        ③有些 Collection 的实现子类, 元素存入后是有序的, 有些是无序, 这列的顺序指的是是否与存放的顺序一致
        ④Collection 接口没有直接的实现子类, 通过他的子接口 Set 和 List 来实现

    2.常用方法

        ①add 添加单个元素
        ②remove 删除指定元素
        ③contains 查找元素是否存在
        ④size 获取元素个数
        ⑤isEmpty 判断集合是否为空
        ⑥clear 清空集合
        ⑦addAll 添加多个元素
        ⑧contains 查找多个元素是否都存在
        ⑨remove 删除多个元素

    3.元素遍历方法

        ①迭代器遍历(Iterator: 迭代器)

            a.Iterator 对象称之为迭代器, 主要用于遍历 Collection 集合中的元素
            b.所有实现了 Collection 接口的集合都有一个 iterator() 方法, 用于返回 Iterable接口的对象
            c.Iterator 仅仅用来遍历集合
            b.在使用一次迭代器后, 若想再次使用, 需要将此迭代器重置
            代码示例:
                Iterator iterator = collection.iterator();// 得到一个集合的迭代器
                while(iterator.hasNext()){ // 判断是否有下一个元素
                    Object obj = iterator.next();// 获取下一个元素
                }

        ②增强for循环遍历

            a.增强for循环就是iterator的简化版, 通过debug我们会发现和通过迭代器经过的流程相同
            b.与迭代器本质一样, 仅用于遍历集合或数组
            c.基本语法
                for(元素类型 元素名 : 集合名或数组名){
                    访问元素;
                }
以List接口下ArrayList类为例, 对上述内容进行

代码演示:

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@SuppressWarnings({"all"})
public class CSDN {
    public static void main(String[] args) {
        List strings = new ArrayList<>();
        strings.add("abc");// 向末尾添加元素, 若装满了, 会自动扩容
        strings.add("a");
        strings.add("b");
        strings.add("b");
        strings.add("c");
        strings.add("d");
        strings.add("e");
        System.out.println("添加元素: " + strings);

        strings.remove("b");// 根据元素内容删除匹配的数据, 只删除第一个
        System.out.println("删除元素: " + strings);

        System.out.println("元素是否存在: " + strings.contains("a"));// 判断是否存在指定元素

        System.out.println("集合是否为空: " + strings.isEmpty());// 判断列表是否为空, 若为空返回true, 反之返回false

        strings.set(1, "A");// 替换指定索引的元素

        System.out.println("替换元素: " + strings);

        System.out.println("集合中元素个数: " + strings.size());// 获得集合中实际元素的个数, 也可以是集合的长度

        // 使用迭代器进行遍历, 迭代器1
        Iterator<String> iterator = strings.iterator();
        System.out.println("===迭代器遍历===");
        while (iterator.hasNext()) {
            String s = (String) iterator.next();// 强制类型转换, 将Object类型的数据转换为String类型
            System.out.print(s + "\t");
        }
        System.out.println("\n===迭代器遍历结束===");

        System.out.println("===增强for循环遍历===");
        for (Object string : strings) {
            String s = (String) string;
            System.out.print(s + "\t");
        }
        System.out.println("\n===增强for循环内遍历结束===");
    }
}

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Black—slience

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值