Java核心技术卷一 -第九章:集合

系列文章目录

Java核心技术卷一 -第一章:java“白皮书”的关键术语
Java核心技术卷一 -第三章:数据类型
Java核心技术卷一 -第三章:变量与常量
Java核心技术卷一 -第三章:运算符
Java核心技术卷一 -第三章:字符串
Java核心技术卷一 -第三章:输入与输出
Java核心技术卷一 -第三章:数组
Java核心技术卷一 -第四章:类之间的关系-依赖
Java核心技术卷一 -第四章:预定义类-LocalDate类小应用
Java核心技术卷一 -第四章:构造器
Java核心技术卷一 -第四章:null引用
Java核心技术卷一 -第四章:方法参数
Java核心技术卷一 -第四章:对象构造
Java核心技术卷一 -第五章:覆盖方法与super
Java核心技术卷一 -第五章:super关键字
Java核心技术卷一 -第五章:类的强制类型转换与instanceof操作符
Java核心技术卷一 -第五章:抽象类与abstract关键字
Java核心技术卷一 -第五章:Object类的toString方法
Java核心技术卷一 -第五章:数组列表初识
Java核心技术卷一 -第五章:装箱和拆箱
Java核心技术卷一 -第五章:枚举类再认识
Java核心技术卷一 -第七章:异常

文章目录


前言

本人为java初学者,文章内容仅为个人学习总结分享,其中包含了大量Java核心技术卷一里面的文章内容以及一些网站文章内容,由于参考文章过多,在此并不一一列出,如有侵权,请联系删除。

一、集合概述

1.1、什么是集合?有什么用?

数组其实就是一个集合。集合实际上就是一个容器。可以来容纳其它类型的数据。

集合为什么说在开发中使用较多?

集合是一个容器,是一个载体,可以一次容纳多个对象。在实际开发中,假设连接数据库,数据库当中有10条记录,那么假设把这10条记录查询出来,在java程序中会将10条数据封装成10个java对象,然后将10个java对象放到某一个集合当中,将集合传到前端,然后遍历集合,将一个数据一个
数据展现出来。

1.2、集合不能直接存储基本数据类型,另外集合也不能直接存储java对象

集合当中存储的都是java对象的内存地址。(或者说集合中存储的是引用。)

list.add(100);//自动装箱Integer,里面存储的并不是100,而是一个装箱对象

注意:

  1. 集合在java中本身是一个容器,是一个对象,其也有内存地址。同样也可能有某一个变量指向集合,里面存储着集合的地址。
  2. 集合中任何时候存储的都是“引用”。

图示:

在这里插入图片描述

1.3、在java中每一个不同的集合,底层会对应不同的数据结构

往不同的集合中存储元素,等于将数据放到了不同的数据结构当中。什么是数据结构?数据存储的结构就是数据结构。不同的数据结构,数据存储方式不同。

例如:数组、二叉树、链表、哈希表,,,,,,,

以上这些都是常见的数据结构。
你往集合1中放数据,可能是放到数组上了
你往集合2中放数据,可能是放到二叉树上了。
你使用不同的集合等同于使用了不同的数据结构。

提示:

在java集合这一章节,需要掌握的不是精通数据结构。java中已经将数据结构实现了,已经写好了这些常用的集合类,我们只需要掌握怎么用?在什么情况下选择哪一种合适的集合去使用即可。

new ArrayList();创建一个集合,底层是数组.
new LinkedList();创建一个集合对象,底层是链表.
new Treeset();创建一个集合对象,底层是二又树.

1.4、集合在java JDK中哪个包下?

java.util.*;
所有的集合类和集合接口都在java.util包下。

1.5、在java中集合分为两大类

一类是单个方式存储元素:

单个方式存储元素,这一类集合中超级父接口:java.util.Collection;

一类是以键值对儿的方式存储元素:

以键值对的方式存储元素,这一类集合中超级父接口:java.util.Map;

1.6、集合的继承结构图

Collection类:

在这里插入图片描述
提示:Collection通过调用Iterable中的iterator方法可以得到一个Iterator迭代器
Map类
在这里插入图片描述

1.7、小总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、Collection接口类

2.1、Collection接口的常用方法

关于java.util.Collection接口中常用的方法:
Collection中能存放什么元素?
没有使用“泛型”之前,Collection中可以存储Object的所有子类型。使用了“泛型”之后,Collection中只能存储某个具体的类型。
集合后期我们会学习“泛型语法。目前先不用管。Collection中什么都能存。
只要是Object的子类型就行。(集合中不能直接存储基本数据类型,也不能存java对象,只是存储java对象的内存地址。)

Collection中的常用方法

boolean add(Object e)向集合中添加元素
int size()获取集合中元素的个数
void clear()清空集合
boolean contains(object o)判断当前集合中是否包含元素。,包含返回true,不包含返回false boolean
remove(object o)删除集合中的某个元素
boolean isEmpty()判断该集合中元素的个数是否为0
object[]toArray()调用这个方法可以把集合转换成数组

代码展示:

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

public class Test02 {
   
    public static void main(String[] args) {
   
        //创建一个集合对象
        //Collection c = new Collection();//接口是抽象的,无法实例化。
        //多态
        Collection c = new ArrayList();
        //测试Collection接口中的常用方法
        c.add(1200);//自动装箱(java5的新特性。),实际上是放进去了一个对象的内存地址。Integer x=new Integer(1200);
        c.add(3.14);//自动装箱
        c.add(new Object());
        c.add(new Student());
        c.add(true);//自动装箱

        //获取集合中元素的个数
        System.out.println("集合中元素的个数是:"+c.size());//5

        //清空集合
        c.clear();
        System.out.println("集合中元素的个数是:"+c.size());//0

        //再向集合中添加元素
        c.add("hello");
        c.add("world");
        c.add("飞机");
        c.add("飞上天");
        c.add(1);

        //判断集合中是否包含“飞机”
        boolean flag=c.contains("飞机");//true
        System.out.println(flag);
        //判断集合中是否包含“飞机2”
        boolean flag2=c.contains("飞机2");//false
        System.out.println(flag2);

        //删除集合中某个元素
        c.remove(1);
        System.out.println("集合中元素的个数是:"+c.size());//4

        //判断集合是否为空(集合中是否存在元素)
        System.out.println(c.isEmpty());//false
        //清空
        c.clear();
        System.out.println(c.isEmpty());//true(true表示集合中没有元素了!)

        c.add("abc");
        c.add("def");
        c.add(100);
        c.add("helloworld!");
        c.add(new Student());

        //转换成数组
        Object[] objs=c.toArray();
        for (int i=0;i< objs.length;i++){
   
            //遍历数组
            Object o=objs[i];
            System.out.println(o);
        }
    }
}

class Student{
   

}

结果:
在这里插入图片描述

2.2、迭代器

代码展示:

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

public class Test02 {
   
    public static void main(String[] args) {
   
        //注意:以下讲解的遍历方式/迭代方式,是所有Collection通用的一种万式,
        //Map集合中不能用。在所有的Collection以及子类中使用。
        //创建一个集合对象
        Collection c = new ArrayList();

        //添加元素
        c.add("abc");
        c.add("def")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

luodiab

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

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

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

打赏作者

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

抵扣说明:

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

余额充值