Java-Collection集合以及迭代器

今天主要介绍集合以及迭代器的使用~~

一、Collection集合

1、什么是集合

在java.util包下面。
打个比喻:可以将集合看做一个大袋子,里面可以存放很多东西,与数组类似但又不同

2、数组和集合的区别

相同点:

数组和集合都是容器

不同点:

数组:长度固定,存放同一类型的元素,可以存放任意类型的数据

集合: 长度可以灵活改变,只能存放引用数据类型–如果需要将int类型转换为Integer包装类。

3、集合常用类的基础体系

在这里插入图片描述

Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,有两个重要的子接口,分别是 java.util.List 以及 java.util.Set

List:特点是元素有序且可重复,接口的主要实现类有java.util.ArrayList和java.util.LinkedList

Set: 特点是元素不可重复,接口主要实现类有java.util.HashSet和java.util.LinkedHashSet

4、集合常用的功能

Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列接。

在这里插入图片描述

5、代码展示

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

public class CollectionTest {
    public static void main(String[] args) {

        ArrayList<Object> objects = new ArrayList<>();
        objects.add(1);
        Collection arrayList = new ArrayList();
        int startSize = arrayList.size();
        arrayList.add("张三");
        int endSize = arrayList.size();
        System.out.println("开始的长度"+startSize);
        System.out.println("结束的长度"+endSize);

//        TODO 添加数据
        boolean lisi = arrayList.add("李四");
        System.out.println(lisi);  // true
//        TODO 删除数据
        boolean zs = arrayList.remove("张三");
        System.out.println(zs); // true
//        TODO 判断是否包含
        boolean Ifzs = arrayList.contains("张三");
        System.out.println(Ifzs); // false
//        TODO 清空
        arrayList.clear();
        System.out.println(arrayList.size());  // 0


    }
}

6、获取集合中的元素

语法: 集合对象.get();

get方法是子类的方法,如果此时集合对象是父类类型则会报错,需要强制转换为子类的类型。

7、扩展

ArrayList<Object> objects = new ArrayList<>();
Collection arrayList = new ArrayList();
都是创建了一个集合,但是不同的是第一个定义了一个泛型,意思是只要是Object的子类都能够放到集合中,而第二个没有规定,这个<>里面可以写String....

二、Iterator迭代器

1、什么是迭代

迭代式Collection集合元素遍历的一种方式,在取元素之前先判断集合中是否有元素,如果有,就把这个元素取出来,继续判断,如果有继续获取元素,直到集合中所有元素全部取出,这种取出方式就是迭代.

2、迭代器的作用

用于遍历Collection集合元素,是一个接口,在java.util包下面,迭代表示重复做某个动作

3、方法

在这里插入图片描述

4、Collection和Iterable的联系

Iterable是Collection的父接口
在这里插入图片描述

5、Iterable 和 Iterator的区别

Iterable:可以迭代,表示一种可迭代的能力(提供了获取迭代器的方法)

Iterator:迭代器具体实现迭代功能(真正的迭代器)

6、获取迭代

在这里插入图片描述

Iterator iterator = arrayList.iterator();

7、使用迭代

在这里插入图片描述

8、使用迭代遍历集合得到数据

方式一:使用for循环的方式

、string name = list.get(i).toString();

方式二:使用迭代

While(iterator.hasNext()){
	String name = iterator.next().toString();
	System.out.print(name)
}

步骤:
1、获取迭代器
2、判断是否存在下一个元素 hasNext
3、如果存在则获取下一个元素 next
4、重复2,3步骤直到没有下一个元素

9、注意事项

1、在进行集合元素获取时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会抛出java.util.NoSuchElementException没有集合元素异常
2、在进行集合元素获取时,如果添加或异常集合中的元素,将无法继续迭代,将会抛出ConcurrentModificationException并发修改异常。

10、代码演示

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

public class CollectionTest {
    public static void main(String[] args) {

        ArrayList<Object> objects = new ArrayList<>();
        objects.add(1);
        Collection arrayList = new ArrayList();
        int startSize = arrayList.size();
        arrayList.add("张三");
        int endSize = arrayList.size();
        System.out.println("开始的长度"+startSize);
        System.out.println("结束的长度"+endSize);

//        TODO 添加数据
        boolean lisi = arrayList.add("李四");
        System.out.println(lisi);  // true
//        TODO 删除数据
        boolean zs = arrayList.remove("张三");
        System.out.println(zs); // true
//        TODO 判断是否包含
        boolean Ifzs = arrayList.contains("张三");
        System.out.println(Ifzs); // false
//        TODO 清空
        arrayList.clear();
        System.out.println(arrayList.size());  // 0


    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值