Java 进阶(2) Collection集合

集合的概念

概念:集合是java中提供的⼀种容器,可以⽤来存储多个数据。

数组:存储⼀组相同数据类型的数据结构。

        局限:定长

集合:动态存放多个对象。

        动态:集合的⼤⼩随着存储的数据量⽽改变。

        多个:0-多个数据

        对象:存储类的实例。基本数据类型--->包装类对象。

集合框架图

java.util.Collection下的接口和继承类关系简易结构图:

 

java.util.Map下的接口和继承类关系简易结构图: 

Collection 常用功能

方法

描述

boolean add(Object obj)

添加⼀个对象数据

boolean addAll(Collection c)

将⼀个集合中的所有对象添加到此集合中

void clear()

清空此集合中的所有对象

boolean contains(Object o)

检查此集合中是否包含o对象

boolean equals(Object o)

比较此集合是否与指定对象相等

boolean isEmpty()

判断此集合是否为空

boolean remove(Object o)

在此集合中移除o对象

int size()

返回此集合中的元素个数

Object[] toArray()

将此集合转换成数组

 示例:

//step1:创建⼀个容器
Collection collection1 = new ArrayList();
System.out.println(collection1);
//step2:往容器中添加元素
boolean flag = collection1.add("abc");//返回⼀个boolean值,判断是否添加成功
System.out.println("flag:"+flag);
//System.out.println(collection1);
collection1.add(true);
collection1.add(123);//---->int---->Integer---->Object
System.out.println(collection1);//重写了toString()⽅法
System.out.println("集合的元素个数:"+collection1.size());
System.out.println("-----------------");
Collection c2 = new ArrayList();
c2.add(12);
c2.add(45);
c2.add(67);
collection1.addAll(c2);//将集合中元素⼀次性添加到⽬标集合中
System.out.println(collection1);
System.out.println("---------");
System.out.println(collection1.contains("abc"));
System.out.println(collection1.containsAll(c2));//判断是否包含集合c2中所
有的元素
System.out.println("-------------");
System.out.println(collection1.isEmpty());//判断集合是否为空
System.out.println("------------");
collection1.remove(true);//删除集合中的⼀个元素
collection1.removeAll(c2);//删除指定的集合中所有的元素
System.out.println(collection1);
System.out.println("--------------");
collection1.clear();
System.out.println("------------");
Collection c3 = new ArrayList();
c3.add(123);
c3.add(345);
collection1.add(123);
collection1.add(true);
collection1.add("abc");
System.out.println(collection1);
collection1.retainAll(c3);//交集:仅保留此集合中包含在指定集合中的元素
System.out.println(collection1);

Iterator迭代器

在程序开发中,经常需要遍历集合中的所有元素。

迭代:即Collection集合元素的通⽤获取⽅式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。⼀直把集合中的所有元素全部取出。这种取出⽅式专业术语称为迭代。

Iterator接⼝也是Java集合中的⼀员,但它与Collection、Map接⼝有所不同,Collection接口与Map接口主要用于存储元素,⽽Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iterator对象也被称为迭代器下面介绍⼀下获取迭代器的方法:

public Iterator iterator(): 获取集合对应的迭代器,⽤来遍历集合中的元素的。

Iterator接⼝的常用方法如下:

        public E next():返回迭代的下⼀个元素。

        public boolean hasNext():如果仍有元素可以迭代,则返回 true。

step1:先获取集合上的迭代器

        Iterator it = c1.iterator();

step2:先判断迭代器后是否有数据

        it.hasNext()-->boolean

step3:通过迭代器获取集合的元素

        it.next()--->E

Collection<String> c1 = new ArrayList<>();
c1.add("aa");
c1.add("bb");
c1.add("cc");
c1.add("dd");
//3.2使⽤迭代器(迭代器专⻔⽤来遍历集合的⼀种⽅式)
//hasNext();有没有下⼀个元素,
//next();获取下⼀个元素
//remove();删除当前元素
Iterator<String> iterator = c1.iterator();
if(iterator.hasNext()){
    System.out.println(iterator.next());
    //不能使⽤collection删除⽅法,因为遍历同时不能使⽤集合删除⽅法,否则出现并发
    修改异常。
    //可以使⽤迭代器的删除⽅法
    //c1.remove(s);
    //iterator.remove();
}
System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(iterator.next());//java.util.NoSuchElementException

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值