首页 > 编程语言 >Java 中 Collection接口中常用的方法

Java 中 Collection接口中常用的方法

时间:2024-02-01 20:44:33浏览次数:39  
标签:Java 迭代 Object 接口 println add Collection 集合

Collection接口中常用的方法

关于java.util.Collection接口中常用的方法

  1. Collection中能放什么元素
    没有使用“泛型”之前,Collectiom中可以存放Object的所有子类型
    使用了“泛型”之后,Collection中只能存放某个具体的类型。
    (集合中不能存储基本数据类型,也不能存储Java对象,只能存储Java对象的内存地址)

  2. Collection中的常用方法
    boolean add(Object e)//向集合中添加元素
    int size()获取集合中元素个数
    void clear() 从此集合中删除所有元素(可选操作)
    boolean contains(Object o) 如果此集合包含指定的元素,则返回 true
    boolean remove(Object o) 从该集合中删除指定元素的单个实例(如果存在)(可选操作)。
    boolean isEmpty() 如果此集合不包含元素,则返回 true 。
    Object[] toArray() 返回一个包含此集合中所有元素的数组。

Iterator iterator() 返回此集合中的元素的迭代器。

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

public class CollectionTest01 {
    public static void main(String[] args) {
        //创建一个集合对象
        //Collection collection = new Collection;接口不能创建对象,接口时抽象的,无法实例化
        //多态
        Collection c= new ArrayList();
        //测试Collection接口中常用的方法
        c.add(1200);//自动装箱(Java5新特性),实际上放进去一个对象地址。Integer x = new Integer(1200);
        c.add(3.14);
        c.add(new Object());
        c.add(new Student());
        c.add(true);//自动装箱
        //获取集合中元素个数
        System.out.println("集合中元素个数是:"+c.size());//5个元素,不是length
        c.clear();
        System.out.println("集合中元素个数是:"+c.size());// 0个元素

        c.add("hello");//“hello”对象的内存地址放到集合中
        c.add("world");
        c.add("浩克");
        c.add("绿巨人");
        c.add(1);

        //判断集合中是否包含“绿巨人”
        boolean flag = c.contains("绿巨人");
        System.out.println(flag);//true
        boolean flag2 = c.contains("绿巨人2");
        System.out.println(flag2);//false

        System.out.println(c.contains("1"));//true

        //删除集合中某个元素
        c.remove(1);
        //判断集合是否为空
        System.out.println(c.isEmpty());//false

        //转换成数组
        Object[] objs= c.toArray();
        for (int i = 0; i < objs.length; i++) {
            //遍历数组
            System.out.println(objs[i]);//这里自动调用toString()
        }

    }
}

关于集合遍历,迭代专题(重点*********)

迭代器是一个对象。迭代器对象有两个方法,hasNext()和next()

/*
 *关于集合遍历,迭代专题(重点)
 *Iterator<E>  iterator() 返回此集合中的元素的迭代器。
 */
public class CollectionTest02 {
    public static void main(String[] args) {
        //注意:一下讲解的遍历方式/迭代方式,是所有的Collection通用的一种方式
        //在Map集合中不能使用,在所有的Collection以及子类中使用。
        //创建集合对象
        Collection c = new ArrayList();//后面的集合无所谓,主要看前面的Collection接口
        //添加元素
        c.add("abc");
        c.add("def");
        c.add(100);
        c.add(new Object());
        //对集合Collection遍历/迭代
        //第一步:获取对象的迭代器对象 Itertor
        Iterator it = c.iterator();
        //第二步,通过以上获取的迭代器对象开始迭代/遍历集合
        /*
        以下方法是迭代器Iterator中的方法:
        boolean    hasNext()  如果迭代具有更多元素,则返回 true 。
        Object     next() 返回迭代中的下一个元素。
        default void   remove() 从底层集合中删除此迭代器返回的最后一个元素(可选操作)。
        * */
        boolean hasNext = it.hasNext();
        if(hasNext){
            //不管你存进去什么取出来统一是Object
            Object obj = it.next();
            System.out.println(obj);
        }
        if(hasNext){
            //不管你存进去什么取出来统一是Object
            Object obj = it.next();
            System.out.println(obj);
        }
        if(hasNext){
            //不管你存进去什么取出来统一是Object
            Object obj = it.next();
            System.out.println(obj);
        }
        if(hasNext){
            //不管你存进去什么取出来统一是Object
            Object obj = it.next();
            System.out.println(obj);
        }



    }
}

/*
* 关于集合的遍历/迭代
* */
public class CollectionTest03 {
    public static void main(String[] args) {
        //创建集合对象
        Collection c1 = new ArrayList();//ArrayList集合:有序可以重复
        //添加元素
        c1.add(1);
        c1.add(2);
        c1.add(3);
        c1.add(4);
        c1.add(1);
        //迭代集合
        Iterator it = c1.iterator();
        while(it.hasNext()){
            //存进去什么类型,取出来是什么类型,只是在输出的时候,println会调用toString()方法
            System.out.println(it.next());
        }

        //HashSet集合:无序不可重复
        Collection c2 = new HashSet();
        //无序:存进去,和取出来的顺序不一定相同。
        c2.add(100);
        c2.add(200);
        c2.add(90);
        c2.add(20);
        c2.add(300);
        c2.add(50);
        c2.add(100);
        Iterator it1 = c2.iterator();
        while(it1.hasNext()){
            System.out.println(it1.next());
        }

    }
}

标签:Java,迭代,Object,接口,println,add,Collection,集合
From: https://www.cnblogs.com/shijili/p/18002081

相关文章

  • 深入剖析Java中的反射,由浅入深,层层剥离!
    写在开头之前更新了不少Java的基础知识,比如Java的类、对象、基础类型、关键字、序列化、泛型、值传递等等,今天要上点深度了,来聊一聊Java中的反射!所谓反射,就是在运行时分析、检查和操作类、接口、方法、属性的行为!简单感受一下反射在开始详解反射之前,我们先通过一段代码,简......
  • Java之网络编程的详细解析
    1.网络编程入门1.1网络编程概述计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,不同计算机上运行的程序,可以进行......
  • 第16天:信息打点-CDN绕过&业务部署&漏洞回链&接口探针&全网扫描&反向邮件
    #CDN配置:配置1:加速域名-需要启用加速的域名配置2:加速区域-需要启用加速的地区配置3:加速类型-需要启用加速的资源 #参考知识:超级Ping:http://www.17ce.com/超级Ping:https://ping.chinaz.com/接口查询:https://get-site-ip.com/接口查询:https://fofa.info/extensions/source......
  • Java-06函数
    tip:[start]理解函数,最重要的是理解代码的执行顺序。——闫学灿tip:[end]函数基础一个典型的函数定义包括以下部分:修饰符、返回类型、函数名字、由0个或多个形参组成的形参列表以及函数体。编写函数我们来编写一个求阶乘的程序。程序如下所示:publicclassMain{ //函......
  • springboot接口加解密传输
    前言:写这个博客的目的也是想着后面如果需要用上的时候方便参考,这篇文章使用的也是比较简单的加解密流程,但这篇文章注重点是后端对于前端传过来的加密参数怎么接收,然后统一拦截解密后又回到原本接口上,接口返回结果时又是怎么将结果集加密后传输出去还有一个很重要的......
  • Java实现学生信息管理系统:从Excel中提取数据的实用方法
    在Java中实现学生信息管理系统并从Excel中读取数据,通常适用于以下场景:数据迁移和集成:如果你有一个现存的学生信息管理系统,该系统可能使用数据库或其他存储方式,但你想将这些数据迁移到新的系统。Excel文件可能提供了一种方便的方式来迁移这些数据,因为Excel文件格式易于查看和编辑。......
  • Java 框架
    框架是整个或者部分系统的可重用设计,从应用角度看框架,可以被当作一组抽象构建及构件实例间交互的方法;从应用目的的角度看,SpringSpring定义Spring通常指的是SpringFramework,它是一个开源框架。Spring是包含众多工具方法的IoC容器。什么是容器容器时用来容纳某种物品的基......
  • Java面向对象程序设计——带异常处理的person类
    带异常处理的person类【问题描述】定义一个Person类,属性包含姓名、年龄。方法:无参构造方法、有参构造方法、getter和setter方法、toString方法。其中:setter方法在设置年龄的时候,要求对年龄进行参数的正确性检测,年龄有效范围在1-100之间,否则抛出IllegalArgumentException异常【输......
  • Java并发基础:CyclicBarrier全面解析!
    内容摘要CyclicBarrier的优点在于实现了线程间的相互等待与协同,确保所有线程在达到预定屏障点后才能继续执行,它支持屏障的重复使用,非常适合多轮次的任务同步,此外,CyclicBarrier还允许在屏障点执行特定操作,为复杂的多线程协作提供了便利。核心概念业务场景CyclicBarrier允许一组......
  • java学习02
    可以用_和字母和$作为标识符开头,特殊字符不能出现在名字中、float和long类型要在赋值后面加上大写首字母最好避免使用浮点数进行比较,因为浮点数是离散的数,接近但不等于使用时会出问题char字符本质都是数字,通过int类型转换可以知道/u0000可以输出起点/uffff是char终点使用下......