java Collection集合接口的介绍和使用详解

 更新时间:2023年07月04日 10:50:53   作者:adminwk  
这篇文章主要为大家介绍了java Collection集合接口的介绍和使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一.关于Collection接口的继承关系图

Collection接口有两个重要的子接口:List,Set。

List接口的三个重要的实现类:LinkedList,ArrayList,Vector

Set接口两个重要的实现类:HashSet,TreeSet

二.Collection接口的实现类的特点

1.Collection实现类,可以存放多个元素,每个元素可以是Object或子类

2.有些Collection实现类,可以存放重复的元素,有些不可以

3.有些Collection实现类,有些是有序的(List),有些是无序的(Set)

4.Collection接口没有直接实现类,是通过它的子接口Set和List来实现的

三.Collection接口的常用方法

由于Collection接口无法实例化,要想使用Collection接口的方法我们就用Collection的实现子类ArrayList来演示它的常用方法

1.add:添加单个元素

(里面存的是一个个对象,并不是基本数据类型,底层会自动装箱。并且添加成功返回true,添加失败返回false)

public static void main(String[] args) {
        Collection collection = new ArrayList<>();
        //add方法的使用
       boolean b = collection.add("jack");
       System.out.println(b);//输出结果:true
       collection.add(10);
       collection.add(true);
       System.out.println("List="+collection);//输出结果:List=[jack, 10, true]
    }

2.remove:删除指定元素

(如果按元素删除返回值就是boolean类型即删除成功就放回true,删除失败就放回false。如果按照索引删除返回值就是删除的元素)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        //remove:方法的使用
        //按照索引删除(索引不存在就报错)
        Object o = list.remove(1);
        System.out.println(o); //输出结果:10
        //按照元素删除
        boolean b = list.remove(true);
        System.out.println(b);//输出结果:true
        System.out.println("List="+list);//输出结果:List=[jack]
    }

3.contains:查找元素是否存在

(返回类型是boolean类型:如果元素存在就返回true,不存在就返回false)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        //contains:方法的使用
        boolean b = list.contains("jack");
        System.out.println(b);//输出结果:true
    }

4.size:获取元素的个数

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        //size:方法的使用
        int s = list.size();
        System.out.println(s);//输出结果:3
   }

5.isEmpty:判断此集合是否为空

(如果此集合为空返回true,不为空返回false)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        //isEmpty:方法的使用
        boolean b = list.isEmpty();
        System.out.println(b);//输出结果:false
    }

6.clear:清空集合

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        //clear:清空集合
        list.clear();
        System.out.println("List="+list);//输出结果:List=[]
    }

7.addAll:添加多个元素

(添加成功返回true,添加失败返回false。只要是实现Collection接口的子类都可以传入addAll方法中)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        //addAll:方法的使用
        List newList = new ArrayList<>();
        newList.add("西游记");
        newList.add("三国演绎");
        boolean b = list.addAll(newList);
        System.out.println(b);//输出结果:true
        System.out.println("list="+list);//输出结果:list=[jack, 10, true, 西游记, 三国演绎]
    }

8.containsAll:查找多个元素是否存在

(如果元素多存在就返回true,否则返回false。只要是实现Collection接口的子类都可以传入containsAll方法中)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        //containsAll:方法的使用
        List newList = new ArrayList<>();
        newList.add("jack");
        newList.add(10);
        boolean b = list.containsAll(newList);
        System.out.println(b);//输出结果:true
    }

9.removeAll:删除多个元素

(如果删除成功就返回true,否则就返回false。只要是实现Collection接口的子类都可以传入removeAll方法中)

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        //removeAll:方法的使用
        List newList = new ArrayList<>();
        newList.add("jack");
        newList.add(true);
        boolean b = list.removeAll(newList);
        System.out.println(b);
        System.out.println("list="+list);
    }

四.Collection接口遍历元素的方式

1.使用迭代器遍历(Iterator)

- 迭代器的基本介绍

1).Iterator对象称为迭代器,主要用于遍历Collection集合中的元素

2).所有实现Collection接口的的集合类都有一个iterator()方法,用以返回一个实现Iterator接口的对象,即可以返回一个迭代器3).Iterator仅用于遍历集合,Iterator本身并不存放对象

- 迭代器的执行原理

1).通过Collection接口实现类的iterator()方法得到一集合的迭代器(Iterator)

Iterator iterator = list.iterator();

2).通过迭代器(Iterator)里的hasNext()方法判断集合是否有下一个元素,如果有返回true,否则返回false

while (iterator.hasNext()){
            System.out.println(iterator.next());
        }

3).通过迭代器(Iterator)里的next()方法返回指针下移后集合位置上的元素(next()方法作用是指针下移并且返回下移后集合位置上的元素)4).原理图

5).代码演示

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        //使用迭代器遍历集合
        //1.先得到list集合的迭代器(Iterator)
        Iterator iterator = list.iterator();
        //2.使用while循环遍历
        while (iterator.hasNext()){
            //3.返回下一个元素
            Object o = iterator.next();
            System.out.println(o);//遍历完最终输出结果为:jack 10 true
        }
    }

2.使用增强for循环

增强for循环可以代替Iteratro迭代器。1).基本语法

for(元素类型 元素名:集合名或数组名){
    访问元素
}

2).代码演示

public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("jack");
        list.add(10);
        list.add(true);
        //使用增强for循环遍历集合
        for (Object o :  list) {
            System.out.println(o);
        }
    }

3).特点:曾强for循环就是简化版的Iterator迭代器,本质一样,只能用于遍历集合或数组(上述代码进行Debug)

参考相关视频(韩顺平老师)

以上就是java Collection集合接口的介绍和使用详解的详细内容,更多关于java Collection集合接口的资料请关注脚本之家其它相关文章!

相关文章

  • 在Spring Boot中使用Spring-data-jpa实现分页查询

    在Spring Boot中使用Spring-data-jpa实现分页查询

    如何使用jpa进行多条件查询以及查询列表分页呢?下面我将介绍两种多条件查询方式。具体实例代码大家参考下本文吧
    2017-07-07
  • SpringBoot使用DevTools实现后端热部署的过程详解

    SpringBoot使用DevTools实现后端热部署的过程详解

    在Spring Boot项目中,Spring Boot官方提供你了Devtools热部署模块,通过maven的方式导入就能使用,本文主要SpringBoot通过DevTools实现热部署,感兴趣的朋友一起看看吧
    2023-11-11
  • Intellij IDEA导入JAVA项目并启动(图文教程)

    Intellij IDEA导入JAVA项目并启动(图文教程)

    这篇文章主要介绍了Intellij IDEA导入JAVA项目并启动,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • java实现上传文件到FTP

    java实现上传文件到FTP

    这篇文章主要为大家详细介绍了java实现上传文件到FTP,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Java org.w3c.dom.Document 类方法引用报错

    Java org.w3c.dom.Document 类方法引用报错

    这篇文章主要介绍了Java org.w3c.dom.Document 类方法引用报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 使用ElasticSearch6.0快速实现全文搜索功能的示例代码

    使用ElasticSearch6.0快速实现全文搜索功能的示例代码

    本篇文章主要介绍了使用ElasticSearch6.0快速实现全文搜索功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • java 中Spark中将对象序列化存储到hdfs

    java 中Spark中将对象序列化存储到hdfs

    这篇文章主要介绍了java 中Spark中将对象序列化存储到hdfs的相关资料,需要的朋友可以参考下
    2017-06-06
  • SpringBoot 签到奖励实现方案的示例代码

    SpringBoot 签到奖励实现方案的示例代码

    这篇文章主要介绍了SpringBoot 签到奖励实现方案的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • IDEA报错:Unable to save settings Failed to save settings

    IDEA报错:Unable to save settings Failed to save settings

    这篇文章主要介绍了IDEA报错:Unable to save settings Failed to save settings的相关知识,本文给大家分享问题原因及解决方案,需要的朋友可以参考下
    2020-09-09
  • Spring中@Autowired和@Resource注解的使用区别详解

    Spring中@Autowired和@Resource注解的使用区别详解

    这篇文章主要介绍了Spring中@Autowired和@Resource注解的使用区别详解,@Autowired默认根据type进行注入,找到与指定类型兼容的 Bean 并进行注入,如果无法通过type匹配到对应的 Bean 的话,会根据name进行匹配,如果都匹配不到则抛出异常,需要的朋友可以参考下
    2023-11-11

最新评论