Collection接口和常用方法

这篇具有很好参考价值的文章主要介绍了Collection接口和常用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Collection接口和常用方法

一、Collection接口实现类的特点

public interface Collection extends Iterable

Collection接口和常用方法

  1. Collection实现子类可以存放多个元素,每个元素可以是Object。
  2. 有些Collection的实现类,可以存放重复的元素,有些不可以。
  3. 有些Collection的实现类,有些是有序的(如:List),有些不是有序的(如:Set)。
  4. Collection接口没有直接的实现子类,是通过它的子接口Set 和 List来实现的。

二、常用方法

  1. add:添加单个元素
  2. remove:删除指定元素
  3. contains:查找元素是否存在
  4. size:获取元素个数
  5. isEmpty:判断是否为空
  6. clear:清空
  7. addAll:添加多个元素
  8. containsAll:查找多个元素是否都存在
  9. removeAll:删除多个元素
//代码演示:
import java.util.ArrayList;
import java.util.List;

/**
 * @author
 * @version 1.0
 */
public class CollectionMethod {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        //Collecton接口常用方法,以实现子类ArrayList来演示

        List list = new ArrayList();
//      add:添加单个元素
        list.add("jack");
        list.add("Tom");
        list.add(10);//有自动装箱的过程,相当于list.add(new Integer(10));
        list.add(true);
        System.out.println("list = " + list);

//      remove:删除指定元素
        list.remove(0);//删除第一个元素
        System.out.println(list.remove(true));//返回是否删除成功
        System.out.println("list = "+list);

//      contains:查找元素是否存在
        System.out.println(list.contains("Tom"));

//      size:获取元素个数
        System.out.println(list.size());

//      isEmpty:判断集合是否为空
        System.out.println(list.isEmpty());

//      clear:清空集合
        list.clear();
        System.out.println("list = " + list);

//      addAll:添加多个元素,实现了Collection接口的类的对象都可以传入
        ArrayList list2 = new ArrayList();
        list2.add("红楼梦");
        list2.add("三国演义");
        list.addAll(list2);
        System.out.println("list = "+ list);

//      containsAll:查找多个元素是否都存在
        System.out.println(list.containsAll(list2));

//      removeAll:删除多个元素
        list.add("聊斋");
        list.removeAll(list2);
        System.out.println("list = " + list);
    }
}

/*
	运行结果:
	list = [jack, Tom, 10, true]
	true
	list = [Tom, 10]
	true
	2
	false
	list = []
	list = [红楼梦, 三国演义]
	true
	list = [聊斋]
*/

三、Collection接口遍历元素方式1 —— 使用 iterator(迭代器)

  • 基本介绍:

    Collection接口和常用方法

  1. Iterator对象称为迭代器,主要用于遍历 Collection 集合中的元素。
  2. 所有实现了 Collection 接口的集合类都有都有一个 iterator() 方法,用以返回一个实现了 Iterator接口的对象,即可以返回一个迭代器。
  3. Iterator 仅用于遍历集合,Iterator 本身并不存放对象。
  4. Iterator的结构:
    • 迭代器的执行原理:

      Iterator iterator = coll.iterator();//得到一个集合的迭代器
      while (iterator.hasNext()) {
      	//hasNext():判断是否还有下一个元素;
      	System.out.println(iterator.next());
      	//next()作用:1. 下移 2. 将下移以后集合位置上的元素返回
      }
      

      Collection接口和常用方法

    • Iterator接口的方法

      Collection接口和常用方法

      Collection接口和常用方法

      注意:在调用 it.next()方法前必须要调用 it.hasNext() 进行检测。若不调用,且下一条记录无效,直接调用 it.next() 会抛出 NoSuchElementException异常。

  • 代码演示:

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    /**
     * @author
     * @version 1.0
     */
    public class CollectionIterator {
        @SuppressWarnings({"all"})
        public static void main(String[] args) {
    
            //Collection接口遍历对象方式1:迭代器遍历
    
            Collection col = new ArrayList();
    
            col.add(new Book("三国演义","罗贯中",10.1));
            col.add(new Book("红楼梦","曹雪芹",20.1));
            col.add(new Book("西游记","吴承恩",30.1));
    
            //System.out.println(col);
            //现在希望能够遍历 col集合
            //1. 先得到 col 对应的 迭代器
            Iterator iterator = col.iterator();
            //2. 使用 while循环遍历
    //        while (iterator.hasNext()){//判断是否还有数据
    //            //返回下一个元素,类型是Object
    //            Object obj = iterator.next();
    //            System.out.println(obj);
    //        }
            //这里有一个快捷键,可以快速生成 while循环 =》itit
            //显示所有快捷键的快捷键 ctrl + j
            //itit
            while (iterator.hasNext()) {
                Object next =  iterator.next();
                System.out.println(next);
            }
    
            //3. 当退出while循环后,这时 iterator迭代器 指向了最后的元素
            //iterator.next();//这里再使用next()就会抛出异常java.util.NoSuchElementException
            //4. 如果希望再次遍历,就需要重置iterator迭代器
            iterator = col.iterator();
            System.out.println("第二次遍历");
            while (iterator.hasNext()) {
                Object obj = iterator.next();
                System.out.println(obj);
            }
        }
    }
    
    class Book{
        private String name;
        private String author;
        private double price;
    
        public Book(String name, String author, double price) {
            this.name = name;
            this.author = author;
            this.price = price;
        }
    
        @Override
        public String toString() {
            return "Book{" +
                    "name='" + name + '\'' +
                    ", author='" + author + '\'' +
                    ", price=" + price +
                    '}';
        }
    }
    
    /*
    	运行结果:
    	Book{name='三国演义', author='罗贯中', price=10.1}
    	Book{name='红楼梦', author='曹雪芹', price=20.1}
    	Book{name='西游记', author='吴承恩', price=30.1}
    	第二次遍历
    	Book{name='三国演义', author='罗贯中', price=10.1}
    	Book{name='红楼梦', author='曹雪芹', price=20.1}
    	Book{name='西游记', author='吴承恩', price=30.1}
    */
    

四、Collection接口遍历元素方式2 —— for循环增强

增强for循环,可以代替iterator迭代器。

特点:增强for就是简化版的iterator,本质一样,foreach的底层就是迭代器。只能用于遍历集合或数组。

  • 基本语法:

    //for( 元素类型 元素名 : 集合名或数组名){
    //	访问元素
    //}
    for (Object object : col){
    	System.out.println(object);
    }
    
  • 案例演示:文章来源地址https://www.toymoban.com/news/detail-409848.html

    import java.util.ArrayList;
    import java.util.Collection;
    
    public class CollectionFor {
        @SuppressWarnings({"all"})
        public static void main(String[] args) {
            Collection col = new ArrayList();
    
            col.add(new Book("三国演义","罗贯中",10.1));
            col.add(new Book("红楼梦","曹雪芹",20.1));
            col.add(new Book("西游记","吴承恩",30.1));
    
            //1. 使用增强for循环,在Collection集合
            //2. 增强for,底层仍然是迭代器
            //3. 增强for可以理解成就是简化版的迭代器
            for(Object book: col){
                System.out.println(book);
            }
            //增强for,也可以直接在数组使用
            int[] nums = {1,2,3,4,5,6};
            for (int i : nums){
                System.out.println(i);
            }
    
            //增强for 快捷键:I 或 col.for
    
        }
    }
    
    /*
    	运行结果:
    	Book{name='三国演义', author='罗贯中', price=10.1}
    	Book{name='红楼梦', author='曹雪芹', price=20.1}
    	Book{name='西游记', author='吴承恩', price=30.1}
    	1
    	2
    	3
    	4
    	5
    	6
    */
    

到了这里,关于Collection接口和常用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Collection接口详细介绍(上)

    前言: 本篇文章主要讲解 Java中的Collection接口以及相关实现类 的知识。该专栏比较适合刚入坑Java的小白以及准备秋招的大佬阅读。 如果文章有什么需要改进的地方欢迎大佬提出,对大佬有帮助希望可以支持下哦~ 小威在此先感谢各位小伙伴儿了😁 以下正文开始 Java中的集合

    2024年02月11日
    浏览(42)
  • 容器——2.Collection 子接口之 List

    ArrayList 是 List 的主要实现类,底层使用 Object[ ] 存储,适用于频繁的查找工作,线程不安全 ; Vector 是 List 的古老实现类,底层使用 Object[ ] 存储,线程安全的。 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全; 底层数据结构: Arraylist 底层使

    2024年02月14日
    浏览(38)
  • 进阶JAVA篇- Collection 类的常用的API与 Collection 集合的遍历方式

    目录         1.0 Collection 类的说明         1.1 Collection 类中的实例方法         2.0 Collection 集合的遍历方式(重点)         2.1 使用迭代器( Iterator )进行遍历         2.2 使用增强型 for 循环进行遍历         2.3 使用 Java 8的 Stream API 进行遍历(使用 Lambda 表达式进

    2024年02月08日
    浏览(47)
  • 49天精通Java,第23天,Java集合,Collection接口,Iterator接口

    大家好,我是哪吒。 在Java类库中,集合类的基类是Collection接口。

    2023年04月11日
    浏览(43)
  • List 接口及其常用方法

    List 接口是 Collection 接口的子接口,其主要特点如下: List 中元素有序,是按照元素的插入顺序进行排序的。每个元素都有一个与之关联的整数型索引(索引从 0 开始),可以根据索引来访问和操作元素,可以使用普通 for 循环遍历。 List 中可以包含重复的元素。 下面的代码

    2024年02月08日
    浏览(44)
  • Set 接口及其常用方法

    Set 接口是 Collection 接口的一个子接口,其主要特点如下: 不允许重复元素: Set 接口的实现类不会包含重复的元素。更正式地说,不包含任何一对使得 e1.equals(e2) 成立的元素 e1 和 e2 ,并且最多只能有一个 null 元素。当尝试添加重复元素时,添加操作将被忽略。 无序性: S

    2024年02月08日
    浏览(38)
  • 第12章_集合框架(Collection接口,Iterator接口,List,Set,Map,Collections工具类)

    1.1 生活中的容器 1.2 数组的特点与弊端 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。 另一方面,使用数组存储对象方面具有 一些弊端 ,而Java 集合就像一种容器,可以 动态地 把多个对象的引用放入容器中。 数

    2024年01月25日
    浏览(45)
  • 接口测试及接口抓包常用测试工具和方法?

    作为测试领域中不可或缺的一环,接口测试和抓包技术在软件开发过程中扮演着至关重要的角色。不论你是新手还是有一些经验的小伙伴,本篇文章都会为你详细介绍接口测试的基本概念、常用测试工具和实际操作技巧,让你轻松掌握这一技能。 接口测试:什么是接口?为什

    2024年02月12日
    浏览(44)
  • 【Java 集合框架API接口】Collection,List,Set,Map,Queue,Deque

    博主: _LJaXi Or 東方幻想郷 专栏: Java | 从跨行业到跨平台 开发工具: IntelliJ IDEA 2021.1.3 Java集合API提供了一组功能强大的数据结构和算法, 具有以下作用( 简述 ) 存储和组织数据 提供高效的数据访问和操作 实现算法和数据处理 提供线程安全性 支持泛型编程 java.util.Collection

    2024年02月12日
    浏览(48)
  • Java封装Elasticsearch8常用接口方法(一)

    正文内容均以elasticsearch8.1版本为例,小版本差距不大,可直接使用,后续均以es8代替elasticsearch8.1 elastic官网文档:https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/8.1/connecting.html 连接池基于commons.pool2所写,网上已存在很多相关内容,仅针对es8进行微调 EsClientPoolFactory.ja

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包