[Java] Collection接口

本文详细介绍了Java中Collection集合的特性和使用方法,并对比了它与数组的区别。此外,还深入探讨了Iterator迭代器的工作原理及如何使用增强for循环来遍历集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章 Collection集合

1.1 集合概述

  • **集合:**集合是java中提供的一种容器,可以用来储存多个数据

集合和数组既然都是容器,那么有什么区别呢?

  • 数组的长度是固定的,但是集合的长度是可变的
  • 数组中储存的是同一类型的元素,可以储存基本数据类型值。集合储存的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合来进行存储

1.2 集合框架

我们要先了解继承与接口的操作框架,才能够了解何时采用哪个类

集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection和双列集合java.util.Map

  • Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,他有两个重要的子接口,分别是java.util.Listjava.util.set.其中,List的特点是元素有序(存储和取出元素顺序相同),元素可重复,有索引,可以遍历,set的特点是元素无序,而且不可重复,没有索引list接口的主要实现类有java.util.ArrayListjava.util.LinkList,set接口的主要实现类有java.util.HashSetjava.util.TreeSet

1.3Collection 常用功能

​ Collection是所有单列集合的父接口,因此在Collection中定义了单列集合的一些通用方法,这些方法可以用于操作所有单列集合.方法如下:

boolean add(E e) 
          确保此 collection 包含指定的元素(可选操作)。 
          
void clear() 
          移除此 collection 中的所有元素(可选操作)。 
          
          
boolean remove(Object o) 
          从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。       
    
boolean contains(Object o) 
          如果此 collection 包含指定的元素,则返回 trueboolean isEmpty() 
          如果此 collection 不包含元素,则返回 trueint size() 
          返回此 collection 中的元素数。 
    
    
 Object[] toArray() 
          返回包含此 collection 中所有元素的数组。   
    
    
    
//示例
    package Practice;


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

public class Demo1 {
    public static void main(String[] args) {
        //创建集合对象,可以用多态
        Collection<String> coll = new ArrayList<>();

        System.out.println(coll);//重写了toString方法

        coll.add("你爹");
        coll.add("你爷爷");
        coll.add("你祖父");
        coll.add("你妈妈");
        System.out.println(coll);

        coll.remove("你爹");
        System.out.println(coll);

        boolean aa = coll.remove("233");
        System.out.println(aa);//说明删除失败


        Object [] ass = coll.toArray();//将ArrayList转化为Object的数组
        for(int i = 0;i< ass.length;i++){
            System.out.println(ass[i]);
        }

    }
}


 

第二章 Iterator迭代器

2.1 Iterator接口

​ 在程序开发中,经常需要遍历不同集合中的所有元素.针对这种需求,JDK专门提供了一个接口java.util.Iterator Iterator接口也是Java集合中的一员,但他与Collection Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问Collection中的元素,因此该对象也被称为迭代器

获取迭代器的方法(Collection的方法):

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

下面介绍一下迭代的概念:

  • 迭代: 即Collection集合元素的通用获取方式.

常用方法如下:

  • public E next();: 返回迭代的下一个元素
  • public boolean hasNext(): 如果仍有元素可以迭代,则返回true

使用步骤代码示例:

package Practice;

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

public class Demo1 {
    public static void main(String[] args) {
        //创建集合对象
        Collection<String> coll = new ArrayList<>();
        coll.add("姚明");
        coll.add("科比");
        coll.add("麦迪");
        coll.add("詹姆斯");
        coll.add("艾弗森");
        coll.add("qwq");

        //获取迭代器(接口也是有泛型的)
        Iterator<String> it = coll.iterator();

        //用hasNext判断有没有下个元素,next获取元素
        while (it.hasNext()) {
            String b = it.next();
            System.out.println(b);
        }

    }
}

2.2 迭代器的实现原理

在这里插入图片描述

2.3 增强for

增强for(也就是for each循环)是JDK1.5后出来的一个高级for循环,专门用来遍历集合和数组的.他的内部原理其实就是一个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行`增删操作

格式

for(元素的数据类型 变量: Collection集合或数组){
    
}

遍历数组,遍历集合

package Practice;


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

public class Demo1 {
    public static void main(String[] args) {
        int[] a  = new int[]{1,2,3,4,6,7,8,321532};
        for (int i : a){
            System.out.println(i);
        }//这里的i就是数组的每个元素

        Collection<String> coll = new ArrayList<>();
        coll.add("你爹");
        coll.add("你爸爸");
        for (String i: coll){
            System.out.println(i);
        }//遍历集合


    }
}


Collection<String> coll = new ArrayList<>();
    coll.add("你爹");
    coll.add("你爸爸");
    for (String i: coll){
        System.out.println(i);
    }//遍历集合


}

}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值