Java集合框架

2023-12-14 04:32:18

Java集合框架

Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机, Java 仍是企业和开发人员的首选开发平台。
??

课程内容的介绍

1. 集合框架概述
2. Collection 接口
3. List 接口
4. Set 接口
5. Map 接口
??

一、 集合框架概述

1. 集合的引入
我们为什么要学习集合框架呢?
我们前面学习了 Java 的基本数据类型,引用类型都是可以用来存储我们的数据的,但是仅仅只能存储单个,我们可以通过数组的形式来存储多个数据,但是数据有个特点是长度是不能改变的,那也就意味着数组在处理需要对数组中的数据做添加和删除操作的时候就会显得非常麻烦。案例如下:
package com.bobo.collection;

import java.util.Arrays;

public class CollectionDemo01 {

    /**
     * 有个问题
     *    全班有20个学生,要通过Java对来来存储相关的学生的信息
     *
     * 基本数据类型
     *    byte  short int long  float double  char boolean
     *
     *  引用数据类型
     *     Student
     *
     *
     *  数组
     *     double[] scores = new double[20];
     *     Student[] students = new Student[20];
     *     数组的长度是不可变的哦
     *  有个学员中途转学进到了我们班  怎么讲这个新的学员信息添加到班级信息中去呢?
     *  学习到了中期,有个学员要转学走了,怎么更新数组中的信息?
     *
     * @param args
     */
    public static void main(String[] args) {
        double[] scores = new double[20];
        for(int i = 0 ; i < scores.length ; i ++){
            if(i == 14){
                scores[i] =  66;
                continue;
            }
            scores[i] =  78;
        }
        System.out.println(Arrays.toString(scores));
        // 新加一个成员
        double[] s1 = new double[21];   //新的数组s1,原来数组double[i]
        // 复制原来数组中的信息到新的数组中去
        for(int i = 0 ; i < scores.length ; i ++){
            s1[i] =  scores[i];
        }
        s1[20] = 99;
        System.out.println(Arrays.toString(s1));
        // 有一个学员离开了班级, 编号为15的学员
        double[] s2 = new double[20];
        for(int i = 0 ; i < s1.length-1 ; i ++){
            if(i < 14){
                s2[i] = s1[i];
            }else{
                s2[i] = s1[i+1];
            }
        }

        System.out.println(Arrays.toString(s2));
    }
}
? ?
所以 Java 给我们提供了集合类来解决这个问题。
??
2. 集合的概念
JavaAPI 所提供的一系列类的实例,可以用来动态的存放多个对象。 Java 集合框架提供了一套性能优良,使用方便的接口和类,位于java.util 包中。
集合的特点: 长度不固定,只能存储引用类型的对象
??
3. 集合和数组的区别

??
4. 集合的框架图
集合其实是由一系列的 Java 类和接口组成的,结构如下:

??

二、 Collection接口

1. 集合的设计理念
结合集合的框架结构,我们可以推演下集合的设计,因为集合有多 增删改查 的方法,而且集合是一套框架,既然是框架那么每一种集合在处理 增删改查 的时候的方式会不一样。
Collection 的特点:
1. 有序:部分集合实现是有序的,部分集合实现是无序的。这里的有序指的是存储的顺序。
2. 可排序:部分集合实现是可排序的,部分集合实现是不可排序的。
3. 可重复:部分集合是可重复的,部分集合是不可重复的。
??
既然每一个集合的特点不一样,那么就取决于所有子类的实现方法不一样,但是我们知道,在集合中所有的集合应该具有集合共有特点:
1. 长度可变。
2. 能够存储任意的引用类型。
3. 具备很多对象的 增删改查 的方法。
4. 集合也能够存储基本数据类的包装类。
??
只是说每一个集合类的实现方式不一样罢了。实现方式其实就取决于底层的数据结构。
??
2.Collection接口的常用方法
2.1 添加功能
boolean add(E e)
//确保此集合包含指定的元素(可选操作)。
boolean addAll(Collection<? extends E> c)
//将指定集合中的所有元素添加到此集合(可选操作)。
??
2.2 删除功能
void clear()
// 从此集合中删除所有元素(可选操作)。
boolean remove(Object o)
// 从该集合中删除指定元素的单个实例(如果存在)(可选操作)。
boolean removeAll(Collection<?> c)
// 删除指定集合中包含的所有此集合的元素(可选操作)。
??
2.3 修改功能
修改功能 在 Collection 接口中并没有提供直接修改的方法,如果你要修改那么可以先删除,再添加。
System.out.println(c1);
c1.remove(3);
c1.add(5);
System.out.println(c1);
? ??
2.4 遍历功能
Object[] toArray()
// 返回一个包含此集合中所有元素的数组。
Iterator<E> iterator()
// 返回此集合中的元素的迭代器。
? ??
2.5 判断功能
boolean isEmpty()
// 如果此集合不包含元素,则返回 true 。
boolean contains(Object o)
// 如果此集合包含指定的元素,则返回 true 。
boolean containsAll(Collection<?> c)
// 如果此集合包含指定 集合中的所有元素,则返回true。
??

文章来源:https://blog.csdn.net/m0_52514893/article/details/134890203
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。