Collection集合

@[TOC]Collection集合

1、集合概述

集合是Java中一种容器,用来存储多个数据,集合和数组都是容器,但是它们之间是有区别的,首先,数组的长度是固定的,而集合的长度是可变的,其次,数组中存储的是同一类型的元素,可以存储基本数据类型值,而集合存储的都是对象,而且对象的类型还可以不一致,在实际开发中当对象多的时候,使用集合进行存储。

2、Collection集合

Collection是所有单列集合的父接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口是List和Set.

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

  2. Set 的特点是元素无序且不可重复,Set接口的主要实现类是HashSet和TreeSet

在这里插入图片描述

3、Collection常用功能

把给定对象添加到当前集合中:public boolean add(E e)
清空集合中的所有元素:public void clear()
在集合中删除给定元素:public boolean remove(E e)
判断当前集合中是否包含给定的对象:public boolean contains(E e)
判断当前集合是否为空:public boolean isEmpty()
返回集合元素个数:public int size()
把集合中的元素存储到数组中:public Object[] toArray()

public class Demo001 {
    public static void main(String[] args) {
        Collection<String> coll=new ArrayList<>();
        coll.add("杨幂");
        coll.add("李敏");
        coll.add("王聪聪");
        System.out.println(coll);
        coll.remove("李敏");
        System.out.println(coll);
        Object[] obj=coll.toArray();
        for (int i = 0; i < obj.length; i++) {
            System.out.println(obj[i]);
        }
        int num=coll.size();
        System.out.println(num);
        System.out.println(coll.contains("杨幂"));
        System.out.println(coll.isEmpty());
        coll.clear();
        System.out.println(coll.isEmpty());
    
    }
}

4、集合遍历迭代器Iterator

Iterator接口也是集合中的一员,与Collection/Map不同的是,它是用来迭代访问(遍历)Collection集合中的元素的。
Iterator是一个接口如果想要实现的话,得去找实现类 有点特殊
Collection接口中有一个方法iterator()这个方法就是返回的迭代器的实现类对象
接口Iterable 中的iterator
Iterator接口常用方法
1、public E next():返回迭代的下一个元素
2、public boolean hasNext():判断是否还有可迭代的元素,有则返回true。
注意:在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会发生java.util.NoSuchElementException没有集合元素的错误。
使用迭代器的步骤:
1、首先得有一个集合
2、调用集合对象的方法iterator()获取迭代器的实现类对象
使用Iterator接口去接收
3、通过iterator.hasNext()方法去判断有没有可迭代的下一个元素,有,则通过iterator.next()方法取出下一个元素

例子:

public class Demo001{
	publc static void main(String[] args){
		Collection<String> coll=new ArrayList<>();
		coll.add("杨幂");
		coll.add("唐嫣");
		Iterator<String> iterator=coll.iterator();
		
		while(iterator.hasNext()){
			String s=iterator.next();
			System.out.println(s);
		}	
	}
}

5、增强for循环(foreach)

是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的,它的内部原理其实是Iterator迭代器,所以遍历过程中,不能对数据进行增删操作。

格式:for(元素的数据类型 变量:Collection集合或者数组){
//写操作代码
}
注意:增强for循环是专门用来遍历数组和集合的,其内部原理其实就是Iterator迭代器,通常只进行遍历元素不对集合元素进行增删操作。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值