首页 > 编程语言 >java----Collection集合

java----Collection集合

时间:2022-10-20 23:44:56浏览次数:48  
标签:java 迭代 元素 list Collection ---- add 集合

Collection集合

1、 集合与数组的相同点是什么?

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

2 、集合与数组的不同点是什么?

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

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

    集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类

Collection 集合概述和使用

  • Collection集合概述

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

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

  • 创建Collection集合的对象

    • 多态的方式

    • 具体的实现类ArrayList

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

Collection集合的遍历

  • 迭代器介绍

    • 迭代器,集合的专用遍历方式

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

  • Iterator中的常用方法
    • boolean hasNext(): 判断当前位置是否有元素可以被取出 ​
    • E next(): 获取当前位置的元素,将迭代器对象移向下一个索引位置
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Scanner;

public class collection_ex1 {

    public static void main(String[] args) {
        //创建集合对象 迭代器【collection】,集合的专用遍历方式
        Collection<String> c = new ArrayList<>();
        //添加元素
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入要添加的元素,输入quit退出");
            String S = sc.next();
            if ("quit".equals(S)) {
                break;
            }else{
                c.add(S);
            }
        }
        //Iterator<E> iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到
        Iterator<String> it = c.iterator();

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

迭代器中删除的方法

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

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

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

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

}

增强for循环【应用】

  • 介绍

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

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

    • 简化数组和Collection集合的遍历

  • 格式

    for(集合/数组中元素的数据类型 变量名 : 集合/数组名) {

    // 已经将当前遍历到的元素封装到变量中了,直接使用变量即可

    }

public class MyCollectonDemo1 {
    public static void main(String[] args) {
        ArrayList<String> 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);
        }
    }
}

 

标签:java,迭代,元素,list,Collection,----,add,集合
From: https://www.cnblogs.com/e-link/p/16811776.html

相关文章

  • 神通数据库安装配置方法
    神通数据库安装配置方法背景随着CentOS停服和国产化的要求.公司开始调研国产化系统.好多人都想用debian和ubuntu.但是我感觉既然要国产化.还是用华为的openEluer阿......
  • CF645E Intellectual Inquiry 题解
    传送门|无耻地宣传我的博客(矩乘代码在最后)看一眼题,没什么思路,那大概就是个dp了。先求已知序列的方案数。考虑怎么设计状态。因为本质不同,如果设\(f[i]\)表示,......
  • K9S初体验
    什么是k9sk9s是一个基于终端的UI,用于与你的Kubernetes集群互动。这个项目的目的是使其更容易导航、观察和管理你在kubernetes集群部署的应用程序。k9s持续观察Kubernetes的......
  • Kubernetes_01_从云原生到kubernetes
    @[toc]一、前言二、kubernetes和云原生CloudNative直接翻译为云原生,云原生官网:​​https://www.cncf.io/​​CNCF,表示CloudNativeComputingFoudation,翻译为云原生计......
  • Kubernetes_02_从零开始搭建k8s集群(亲测可用)
    @[toc]一、前言本文讲述从零开始搭建k8s集群,均使用国内镜像,版本均统一,使用两个虚拟机,一个主节点,一个从节点,保证k8s一次搭建成功。注意:Kubernetes,简称K8s,是用8代替名字中间的......
  • Kubernetes_03_手把手打镜像并运行到k8s容器上(亲测可用)
    @[toc]一、前言本文使用两个机器192.168.100.150是master节点,192.168.100.151是node1节点,如下:演示三个示例,第一个示例wordpress博客系统是指将别人的镜像部署在k8s;第二......
  • 内存管理
    ​回收问题:内存回收算法:      当某一块归还后,前后空闲空间合并,修改内存空闲区表      四种情况:            上相邻、下相邻、上下都相邻、......
  • 如何解压.bz2文件包
    课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。腾讯课堂连接地址https://ke.qq.com/c......
  • 存储管理
    存储管理虚拟存储技术当进程运行时,先将一部分装入内存,另一部分暂留在磁盘,当要执行的指令或访问的数据不在内存时,由操作系统自动完成将他们从磁盘调入内存的工作。虚拟地址空......
  • 快表(TLB)的引入
    ​问题:页表—>两次或两次以上的内存访问CPU的指令处理速度与内存指令的访问速度差异大,CPU的速度得不到充分利用如何加快地址映射速度,以改善系统性能?程序访问的局部原理—>引......