Java中的容器解析----集合.1

本文主要介绍了Java集合框架的基础知识,包括Collection接口作为单列集合的顶层接口,以及其下的List子体系。文章通过实例演示了如何创建Collection集合对象、添加元素、遍历集合以及使用迭代器。作者强调了养成良好的编程习惯,如使用泛型限制集合元素类型,并提倡学习和使用底层实现类。此外,还提醒程序员注意集合的使用步骤,包括创建、添加元素、遍历和使用迭代器。最后,文章以一个学生类为例,展示了如何存储和遍历对象集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于写博客这简直,真的要吐槽一下自己,永远都是忘记再忘记,每次公司新来的小伙子们问的问题总是记下来想要写到博客,却总是因为工作一忘再忘.
在这里提醒看到文章的程序员同志们,一定要坚持自己的好习惯,无论是手写笔记还是云笔记,一定要将自己所学的东西归纳整理,形成自己的知识体系,这样用的时候才不会不知从何下手,这也是刚入行或者刚毕业的同行的通病吧.
之前开始写sql的小函数问题是因为公司新来的同时老是遇到解决不了的问题,完了之后就硬干,写一大堆代码,调用一堆表,各种自连接,外连接,这样跑起来不仅慢还占用资源,正确率也无法保证,话说回来,每个程序员写代码都有自己的风格,谁会脑子瓦特去看别人的代码啊,我连自己写的代码都懒得去看第二遍,手动狗头三连.
这两天问题又变了,居然是一些Java基础的集合问题,所以借机会重新归纳一下集合的相关基础应用知识,感兴趣的可以再往深研究去看源码,这里就不过多介绍了
话不多说,上干货

集合概念

集合是用来存储多个类型数据的容器,她的长度是可以变化的(一般的定义都是说存储同一类型的数据,这是指实际开发中,集合的底层实际上支持多种类型数据同时存储,但实际开发中读写不方便)

集合的体系

集合体系图


记忆点:
1.集合的顶层都是**接口**,其中Collection接口是所有*单列集合*的顶层接口,Map接口是所有双列集合的顶层接口
2.Collection接口有两大子体系:
-->list体系:特点是有序,可重复,其中有序指的不是排序,而是写入和读取顺序一致
-->Set体系:特点是无序,唯一,无序定义同上
学习集合密不外传小技巧:   ***学顶层,用底层***  手动狗头三连,这谁不知道 哈哈


## 一 Collection集合---单列集合
**1.如何创建对象**
为什么一直强调接口呢?用屁股想都知道啊,学习接口的时候都知道,接口不能直接通过new关键字来创建对象(杠精们说匿名内部类的你滚,匿名内部类实际上是另一只对接口的实现,可以理解为创建了其子类对象,用于实现接口)
所以一般创建Collection集合所使用的方法是通过其子类对象来创建
代码如下


```java
Collection<String> list = new Arraylist<String>();
解释:
1.集合后边的<数据类型>是泛型的意思, 泛型是用来限定集合中存储元素的数据类型的,
这里的泛型中的数据类型说明该集合只能存储字符串,
2.泛型只能是引用数据类型,且在实际开发中,泛型一般只结合集合来一起使用. 

2.需求:
----创建Collection集合对象, 用来存储字符串.
----调用Collection接口的add()方法, 往上述集合中添加3个字符串, 内容如下:
“hello”, “world”, “java”
----通过输出语句, 直接打印集合对象, 并观察结果.
参考代码如下:


public class Demo01 {
    public static void main(String[] args) {
        //1.创建Collection集合对象, 用来存储字符串.
        //Collection<String> coll = new ArrayList<String>();
        //JDK1.7以后, 可以简化成: 如下格式
        Collection<String> coll = new ArrayList<>();
        //2.调用Collection接口的add()方法, 往上述集合中添加3个字符串, 内容如下:"hello", "world", "java"
        coll.add("hello");
        coll.add("world");
        coll.add("java");
        //3.通过输出语句, 直接打印集合对象, 并观察结果.
        System.out.println("coll: " + coll);        //ArrayList类已经重写了Object#toString()方法.
    }
}

3.Collection集合的成员方法
常用方法如下:
---- public boolean add(E e) 添加元素.
---- public boolean remove(Object obj) 从集合中移除指定的元素.
----public void clear() 清空集合对象
----public boolean contains(Object obj) 判断集合中是否包含指定的元素
---- public boolean isEmpty() 判断集合是否为空
---- public int size() 获取集合的长度, 即集合中元素的个数
方法的调用就不用说了吧
对象名.方法调用就可以了,这里要注意返回值

4.遍历集合

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

//案例: 演示集合的遍历.
/*
    涉及到的方法:
        Collection集合中的方法
            public Iterator<E> iterator();      根据集合对象, 获取其对应的迭代器对象.
        Iterator迭代器中的方法:
            public boolean hasNext();           判断迭代器中是否有下一个元素.
            public E next();                    获取迭代器中的下一个元素.
    结论: 总结的集合的使用步骤  记忆
        集合的使用分为4大步3小步.
        1. 创建集合对象.
        2. 创建元素对象.
        3. 把元素对象添加到集合对象中.
        4. 遍历集合.
            4.1 根据集合对象获取其对应的迭代器对象.          Collection#iterator();
            4.2 判断迭代器中是否有下一个元素.                Iterator#hasNext();
            4.3 有就获取.                                    Iterator#next();
 */
public class Demo03 {
    public static void main(String[] args) {
        //1.通过多态的形式, 创建Collection集合对象.
        Collection<String> coll = new ArrayList<>();
        //2.调用Collection接口的add()方法, 往上述集合中添加3个字符串, 内容如下:"hello", "world", "java"
        /*String s1 = "hello";
        coll.add(s1);*/
        coll.add("hello");
        coll.add("world");
        coll.add("java");
        //3.通过迭代器遍历集合, 获取到每一个元素, 并打印到控制台上.
        //3.1 根据集合对象获取其对应的迭代器对象.
        //多态
        //接口                 Iterator接口的子类对象
        Iterator<String> it = coll.iterator();
        //3.2 判断迭代器中是否有下一个元素.
        while (it.hasNext()) {
            //3.3 有就获取, 然后输出.
            String s = it.next();
            System.out.println(s);
        }
    }
}

5.集合的使用步骤总结
集合的步骤可以分为四大步三小步, 具体如下:

  1. 创建集合对象.
  2. 创建元素对象.
  3. 把元素添加到集合中.
  4. 遍历集合
    4.1.根据集合对象获取其对应的迭代器对象.
    通过Collection#iterator()方法实现.
    4.2.判断迭代器中是否有下一个元素.
    通过Iterator#hasNext()方法实现.
    4.3.如果有, 就获取该元素.
    通过Iterator#next()方法实现.

6.附送理解性辅助需求
6.1 定义一个学生类, 属性为姓名和年龄.
6.2 创建Collection集合, 用来存储学生对象.
6.3往Collection集合中, 添加3个学生的信息.
6.4通过迭代器, 遍历集合.
参考代码:

public class Demo04 {
    public static void main(String[] args) {
        //1. 创建集合对象.
        Collection<Student> coll = new ArrayList<>();
        //2. 创建元素对象.
        Student s1 = new Student("刘亦菲", 33);
        Student s2 = new Student("赵丽颖", 31);
        Student s3 = new Student("高圆圆", 35);
        //Student s4 = new Student("丹丹", 18);
        //3. 把元素对象添加到集合对象中.
        coll.add(s1);
        coll.add(s2);
        coll.add(s3);
        //coll.add(s4);
        //4. 遍历集合.
        //4.1 根据集合对象获取其对应的迭代器对象.          Collection#iterator();
        Iterator<Student> it = coll.iterator();
        //4.2 判断迭代器中是否有下一个元素.                Iterator#hasNext();
        while (it.hasNext()) {
            //4.3 有就获取.                                Iterator#next();
            Student stu = it.next();
            System.out.println(stu);

            //不能写成如下的形式, 因为next()方法调用一次, 就会获取一个值.
            //下边这个代码就属于: 判断一次, 获取两个值.
            //System.out.println(it.next().getName() + "..." + it.next().getAge());
        }
    }
}

下篇文章讲Collection下的List集合及其特有的成员方法
同志们栽未!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值