【进阶】java基础之集合(一)

一丶集合体系结构

  1. 单列集合
    单列集合体系
    在这里插入图片描述
    List系列集合: 添加元素是有序 可重复 有索引的
    Set系列集合: 添加的元素是无序 不重复 无索引的

2.双列集合

二丶Collection集合

1. Collection的使用说明

Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的。

方法名称说明
public boolean add(E e)把给定的对象添加到当前集合中
public void clear()清空集合中所有的元素
public boolean remove(E e)把给定的对象在当前集合中删除
public boolean contains(object obj)判断当前集合中是否包含给定的对象
public boolean isEmpty()判断当前集合是否为空
public int size()返回集合中元素的个数/集合的长度

添加元素
在这里插入图片描述

清空集合
在这里插入图片描述
删除对象
在这里插入图片描述
查询是否存在
在这里插入图片描述
判断集合是否为空
在这里插入图片描述
获取集合长度
在这里插入图片描述

(1)代码呈现

package myCollection;

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

public class A01_CollectionDemo1 {
    public static void main(String[] args) {
 /*
        public boolean add(E e)	                把给定的对象添加到当前集合中
        public void clear()	                    清空集合中所有的元素
        public boolean remove(E e)	            把给定的对象在当前集合中删除
        public boolean contains(object obj)	    判断当前集合中是否包含给定的对象
        public boolean isEmpty()	            判断当前集合是否为空
        public int size()	                    返回集合中元素的个数/集合的长度


      注意点:Collection是一个接口,我们不能直接创建它的对象
      所以 我们学习他的方法时,只能创建他的实现类的对象
 */
        Collection<String> coll = new ArrayList<String>();

        //1.添加元素
        //细节:如果要往list系列集合中添加数据,那么返回方法永远是true 因为list系列允许元素重复
        //细节:如果要往set系列集合中添加数据,如果当前元素不存在则返回true,如果存在则返回fals,因为set集合不允许重复
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");

        System.out.println(coll);

        //2.清空集合
        //coll.clear();

        //3.删除对象
        //细节1:因为co11ection里面定义的是共性的方法,所以此时不通过索引进行除。只能通过元素的对象进行删除
        //细节2:方法会有一个布尔类型的返回值。删除成功返回true,删除失败返回false
        //如果要删除的元素不存在,就会则失败
        //coll.remove("aaa");

        //4.判断元素是否包含
        //细节:底层是依赖equals方法进行判断是否存在的。
        //所以,如果集合中存储的是自定义对象,也想通过contains方法来判断是否包含,那么在javabean类中,一定要重写equals方法。
        //boolean result = coll.contains("aaa");
        //System.out.println(result);

        //5.判断集合是否为空
        //boolean result2 = coll.isEmpty();

        //6.获取集合的长度
        int size = coll.size();

        System.out.println(size);
    }
  }

2. Collection的遍历方式

  • 迭代器遍历(不依赖索引)
  • 增强for遍历
  • Lambda遍历

(1)迭代器遍历

迭代器在java中的类是iterator,迭代器是集合专用的遍历方式

Collection集合获取迭代器
方法名称说明
Iterator iterator()返回迭代器对象,默认指向当前集合的0索引
lterator中的常用方法
方法名称说明
boolean hasNext()判断当前位置是否有元素,有元素返回true,没有元素返回false
E next()获取当前位置的元素,并将迭代器对象移向下一位置

在这里插入图片描述
注意点
1,报错NoSuchElementException
在这里插入图片描述

2,迭代器遍历完毕,指针不会复位
在这里插入图片描述
在这里插入图片描述

3,循环中只能用一次next方法
在这里插入图片描述

4,迭代器遍历时,不能用集合的方法进行增加或者删除
在这里插入图片描述
在这里插入图片描述

(2)增强for遍历

  • 增强for的底层就是迭代器,为了简化选代器的代码书写的,
  • 它是JDK5之后出现的,其内部原理就是一个Iterator迭代器
  • 所有的单列集合和数组才能用增强for进行遍历。
    在这里插入图片描述
    在这里插入图片描述
增强for的小细节
  • 修改增强for中的变量,不会改变集合中原本的数据
    在这里插入图片描述

(3)Lambda表达式遍历

得益于JDK 8开始的新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式

方法名称说明
default void forEach(Consumer<? super T> action):结合lambda遍历集合
在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值