栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java类集框架-Collection

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java类集框架-Collection

数组与集合的区别

集合类体系结构

Collection 集合(单列)

概述

使用方式

Collection集合常用方法

代码实现

Collection的遍历

迭代器

增强for循环

下回分解


数组与集合的区别

相同点

都是容器,可以存储多个数据

不同点

数组的长度是不可变的,集合的长度是可变的

数组可以存基本数据类型和引用数据类型

集合只能存引用数据类型,如果需要存基本数据类型,需要存对应的包装类(int -> Integer)

集合类体系结构

其中蓝色的表示接口,红色的表示实现类。

Collection 集合(单列)

概述

是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素

JDK 不提供此接口的任何直接实现。它提供更具体的子接口(如Set和List)实现

使用方式

创建Collection集合的对象

多态的方式

具体的实现类ArrayList

Collection集合常用方法
方法名说明
boolean add(E e)添加元素
boolean remove(Object o)从集合中移除指定的元素
boolean removeIf(Object o)根据条件进行移除
void clear()清空集合中的元素
boolean contains(Object o)判断集合中是否存在指定的元素
boolean isEmpty()判断集合是否为空
int size()集合的长度,也就是集合中元素的个数

注意: 

removeif底层会遍历集合,得到集合中的每一个元素。将每一个元素代入lambda表达式中判断一下,如果返回true,就删除;如果返回false,就保留。

代码实现
public class Demo01 {
    public static void main(String[] args) {
        Collection collection = new ArrayList<>();
        // boolean add(E e)添加元素
        collection.add("aaa");
        collection.add("bbb");
        collection.add("ccc");
        collection.add("dddd");
        System.out.println(collection);
        //[aaa, bbb, ccc]

        // boolean remove(Object o)从集合中移除指定的元素
        boolean result1 = collection.remove("aaa");
        boolean result2 = collection.remove("ddd");
        System.out.println(collection);
        //[bbb, ccc]
        System.out.println(result1 + "," + result2);
        //true,false

        // boolean removeIf(Object o)根据条件进行移除
        collection.removeIf(
                (String s) -> {
                    return s.length() == 3;
                }
        );
        System.out.println(collection);
        //[dddd]

        // boolean contains(Object o)判断集合中是否存在指定的元素
        System.out.println(collection.contains("dddd"));
        //true
        System.out.println(collection.contains("ddd"));
        //false

        // boolean isEmpty()判断集合是否为空
        System.out.println(collection.isEmpty());
        //false

        // int size()集合的长度,也就是集合中元素的个数
        System.out.println(collection.size());
        // 1

        // void clear()清空集合中的元素
        collection.clear();
        System.out.println(collection);
        //[]
    }
}

Collection的遍历

迭代器

集合的专用遍历方式

Iterator iterator()    返回此集合中元素的迭代器,通过集合对象的iterator()方法得到

Iterator中的常用方法

boolean hasNext()        判断当前位置是否有元素可以被取出 ​

E next()        获取当前位置的元素,将迭代器对象移向下一个索引位置

代码实现 

public class Demo02 {
    public static void main(String[] args) {
        //创建集合对象
        Collection collection = new ArrayList<>();

        //添加元素
        collection.add("a");
        collection.add("b");
        collection.add("c");
        collection.add("d");
        collection.add("e");

        //Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
        Iterator it = collection.iterator();

        //用while循环改进元素的判断和获取
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
            //a b c d e
        }
    }
}

迭代器中删除的方法

void remove(): 删除迭代器对象当前指向的元素

public class Demo02 {
    public static void main(String[] args) {
        ArrayList list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");

        Iterator it = list.iterator();
        while(it.hasNext()){
            String s = it.next();
            if("b".equals(s)){
                //指向谁,那么此时就删除谁.
                it.remove();
            }
        }
        System.out.println(list);
        //a c d e
    }
}

增强for循环

它是JDK5之后出现的,其内部原理是一个Iterator迭代器

实现Iterable接口的类才可以使用迭代器和增强for

简化数组和Collection集合的遍历

单列集合可以使用迭代器与增强for,但是双列集合不能直接使用,因为它的底层没有实现Iterator接口。

代码实现

public class Demo1 {
    public static void main(String[] args) {
        ArrayList list =  new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");

        //1,数据类型一定是集合或者数组中元素的类型
        //2,str仅仅是一个变量名而已,在循环的过程中,依次表示集合或者数组中的每一个元素
        //3,list就是要遍历的集合或者数组
        for(String str : list){
            System.out.println(str);
        }
    }
}

注意 :

如果在for中这样子写

for(String str : list){

        str = "q";

        System.out.println(str);

        // q ...
}

对于集合中的元素是没有影响的!请看下图:

 

下回分解

Java类集框架-Listhttps://blog.csdn.net/weixin_43715214/article/details/122780664

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/727303.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号