JavaSE:15、集合类

学习 资源1

学习资源 2

1、ArrayList

List是集合类型的一个分支,它的主要特性有:

  • 是一个有序的集合,插入元素默认是插入到尾部,按顺序从前往后存放,每个元素都有一个自己的下标位置
  • 列表中允许存在重复元素(equals方法判断)
import com.test.*;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.function.Predicate;

public class Main {

    public static  void main(String[] args)
    {
     ArrayList<String> list = new ArrayList<String>();
     list.add("abc");
     System.out.println(list.get(0)==new String("abc"));//false
     System.out.println(list.contains(new String("abc")));//true
    }

}
ArrayList增删改查

add():末尾加元素,或在某位置加元素

remove():删除某位置元素,或删除第一次找到的某元素

indexOf(): 返回某元素第一次出现下标

lastIndexOf():返回某元素最后一次出现的下标

Collections.sort():对元素排序

binarySearch(list,):二分查找某元素

get():获取某下标的元素

import com.test.*;

import java.text.CollationElementIterator;
import java.util.*;


public class Main {

    public static  void main(String[] args)
    {
     ArrayList<String> list = new ArrayList<>();
     list.add("abc"); list.add("def");list.add("def");
    list.add(1,"def");
    System.out.println(list);//[abc, def, def, def]
     list.set(0,"def");
     System.out.println(list);//[def, def, def, def]
     list.remove(0);
        System.out.println(list);//[def, def, def]
     list.remove("def");
        System.out.println(list);//[def, def]
        System.out.println(list.indexOf("def"));//0
        System.out.println( list.lastIndexOf("def"));//1

        Collections.sort(list);
        System.out.println(list);//[def, def]
        System.out.println(Collections.binarySearch(list,"def"));//0
    }

}

2、迭代器

import com.test.*;

import java.text.CollationElementIterator;
import java.util.*;


public class Main {

    public static  void main(String[] args)
    {
     ArrayList<String> a = new ArrayList<String>();
     a.add("1");
     a.add("2");
     a.add("3");
     for(int i=0;i<a.size();i++)
         System.out.print(a.get(i));//123
     System.out.println();
     for(String s:a)
         System.out.print(s);//123
     System.out.println();
     Iterator<String> it = a.iterator();
     while(it.hasNext())
     {
         System.out.print(it.next());//123
     }
    }

}

3、Queue

import com.test.*;

import java.text.CollationElementIterator;
import java.util.*;


public class Main {

    public static  void main(String[] args)
    {
     Queue<String> queue = new LinkedList<>();
     queue.add("1");
     queue.add("2");
     queue.add("3");
     System.out.println(queue.poll());//1
     System.out.println(queue.poll());//2
     System.out.println(queue.poll());//3
    }
}

4、deque

    import com.test.*;

    import java.text.CollationElementIterator;
    import java.util.*;


    public class Main {

        public static  void main(String[] args)
        {
         Deque<String> deque = new LinkedList<>();
         deque.add("1");
         deque.add("2");
         deque.add("3");
         System.out.println(deque.peek());//1
         System.out.println(deque.peekFirst());//1
         System.out.println(deque.peekLast());//3
         System.out.println(deque.poll());//1
         System.out.println(deque.pollFirst());//2

        }
    }

5、set

由map实现的

add():添加元素

size():大小

contains():是否包含某元素

remove():删除某元素

    import com.test.*;

    import java.text.CollationElementIterator;
    import java.util.*;


    public class Main {
        public static  void main(String[] args)
        {
        Set<String> set = new HashSet<>();
        set.add("3");
        set.add("2");
        set.add("1");
        System.out.println(set);//[1, 2, 3]
        }
    }

6、ArrayDeque

双端队列,是循环数组,队首不一定在0处

add():增加元素

remove():删除元素

contains():包含元素

    import com.test.*;

    import java.text.CollationElementIterator;
    import java.util.*;


    public class Main {
        public static  void main(String[] args)
        {
       ArrayDeque<String>  arrayDeque = new ArrayDeque<>();
        arrayDeque.add("1");
        arrayDeque.add("2");
        arrayDeque.add("3");
        arrayDeque.add("4");
        arrayDeque.add("5");
        System.out.println(arrayDeque);//[1, 2, 3, 4, 5]
        arrayDeque.remove("2");
        System.out.println(arrayDeque);//[1, 3, 4, 5]
        arrayDeque.add("6");
        System.out.println(arrayDeque);//[1, 3, 4, 5, 6]
        }
    }

7、LinkedList

LinkedList 同时实现了 Stack、Queue、PriorityQueue 的所有功能。 

    import com.test.*;
    import java.util.*;
    public class Main {
        public static  void main(String[] args)
        {
       LinkedList<String>  list = new LinkedList<>();
        list.add("1");
        list.add("2");
        list.offer("3");
        System.out.println(list.get(0));//1
        System.out.println(list);//[1, 2, 3]
        list.poll();//去掉1
        list.pop();//去掉2
        System.out.println(list);//3
        System.out.println(list.peek());//3    取队头
        System.out.println(list.contains("2"));//false
         list.offerFirst("5");
        Iterator<String> it = list.iterator();
        while(it.hasNext())
        {
            System.out.print(it.next()+" ");//5 3
        }
        }
    }

8、PriorityQueue

  
    import java.util.*;
    public class Main {
        public static  void main(String[] args)
        {
        PriorityQueue<String> pq = new PriorityQueue<String>();
        pq.add("b");
        pq.add("a");
        pq.add("d");
        pq.offer("c");
        System.out.println(pq);//[a, b, d, c]
        pq.poll();//删除元素
        System.out.println(pq);//[b, c, d]
        System.out.println(pq.peek());//b
        System.out.println(pq.contains("c"));//true
        for(String s:pq)
        {
            System.out.print(s+" ");//b c d
        }
        }
    }

9、HashMap


    import java.util.*;
    public class Main {
        public static  void main(String[] args)
        {
        HashMap<String,String> map=new HashMap<String,String>();
        map.put("1","1");
        map.put("2","2");
        map.put("3","3");
        System.out.println(map.get("1"));//1
        map.put("1","11");
        System.out.println(map.get("1"));//11
        map.remove("1");
            for (String i:map.keySet()) {
          System.out.print(i+' '+map.get(i)+",");//2 2,3 3,
            }
        }
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/897395.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出剖析重量级文生图模型Flux.1

24年8月&#xff0c;Flux.1的发布又一次火爆整个AI绘图领域&#xff0c; 号称AI文生图的“新标杆”&#xff0c;刷新AI图像领域的新格局。 Flux是一款由Black Forest Labs开发的尖端AI图像生成工具&#xff0c;旨在通过先进的技术将文本提示转化为高质量的图像。Flux AI支持多…

利用 OBS 推送 WEBRTC 流到 smart rtmpd

webrtc whip 推流 & whep 拉流简介 RFC 定义 通用的 webrtc 对于 SDP 协议的交换已经有对应的 RFC 草案出炉了。这就是 WHIP( push stream ) & WHEP ( pull stream ) . WHIP RFC Link: https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html WHEP RFC Link:…

总分441数一149专137东南大学820信号数电考研经验电子信息与通信工程电路原920专业基础综合,真题,大纲,参考书。

一. 写在前面的话 本人是23年考生&#xff0c;本科就读于西电电子信息工程&#xff0c;以441分总分&#xff08;数学一149&#xff0c;英语83&#xff0c;专业课820&#xff08;原920信号和数电专业基础综合&#xff09;137&#xff0c;政治73&#xff09;考上东南信院电路与系…

虚拟机(VMwara Workstation17)保姆级别的安装(附软件获取途径)

文章目录 一、虚拟机的作用二、虚拟机的获取三、虚拟机的安装步骤四、总结 一、虚拟机的作用 压根不需要给自己的电脑重装系统&#xff0c;就可以使用Linux系统。简单来说就是虚拟出一个计算机&#xff0c;安装Linux系统&#xff0c;便于学习和工作 关于虚拟机的介绍&#xf…

初识Linux · 预备文件系统

目录 前言&#xff1a; 看看物理磁盘 了解磁盘的存储结构 对磁盘进行逻辑抽象 前言&#xff1a; 我们在上文探讨的问题都是基于文件是被打开的情况&#xff0c;那么对于文件没有被打开的情况&#xff0c;我们是没有探讨过的&#xff0c;而本文作为文件系统的预备知识&…

多ip访问多网站

1.前提配置 关防火墙 关selinux 2.安装web服务程序nginx 3.当前主机添加多地址&#xff08;ip a&#xff09; 4.自定义nginx配置文件通过多地址区分多网站 /etc/nginx/conf.d/test_ip.conf server { #标记为一个虚拟主机} 5.根据配置在主机创建数据文件 6.重启服务加载配…

【ROS2】构建导航工程

1、ROS小车组成 ROS小车由三大件组成:运动底盘、ROS主控、导航传感器。 1.1 运动底盘 运动底盘的硬件由车轮、电机(带编码器)、电机驱动器、STM32控制器、电池等组成。 涉及的知识点主要为:STM32单片机程序、机器人运动学分析 1)STM32单片机程序 单片机程序框架如下:…

Modbus TCP报错:Response length is only 0 bytes

问题描述&#xff1a; 使用modbus_tk库&#xff0c;通过Modbus tcp连接PLC时&#xff0c;python中的一个报错信息&#xff1a; Response length is only 0 bytes报错原因&#xff1a; 与Modbus TCP 服务端建立连接后没有断开&#xff0c;继续作为长连接使用&#xff0c;客户端…

vue3 + ts + element-plus 二次封装 el-dialog

实现效果&#xff1a; 组件代码&#xff1a;注意 style 不能为 scoped <template><el-dialog class"my-dialog" v-model"isVisible" :show-close"false" :close-on-click-modal"false" :modal"false"modal-class&…

Java调用大模型 - Spring AI 初体验

Spring AI&#xff1a;为Java开发者提供高效的大模型应用框架 当前Java调用大模型时面临缺乏高效AI应用框架的问题。Spring作为资深的Java应用框架提供商&#xff0c;通过推出Spring AI来解决这一挑战。它借鉴了LangChain的核心理念&#xff0c;并结合了Java面向对象编程的优势…

提升网络安全防御有效性,服务器DDoS防御软件解读

从购物、银行业务、旅行计划到娱乐&#xff0c;人们越来越多地转向数字领域来促进他们的公共和私人生活。然而&#xff0c;当DDoS攻击汹涌而至&#xff0c;企业很可能会陷入数小时或数天的混乱局面&#xff0c;用户的体验也会大打折扣。根据DDoS-Guard发布的数据&#xff0c;20…

QML 基本动画

在介绍完 QML 动画框架之后,现在我们来看看具体的动画及其用法。先从最常用的基本动画入手,这些动画包括:PropertyAnimation、ColorAnimation、Vector3dAnimation 和 PathAnimation 等,它们不仅能够帮助我们轻松地为应用程序添加动态效果,还能显著提升用户体验,使得界面更…

C++11——智能指针

智能指针的介绍 智能指针是C11中引入的标准库特性之一&#xff0c;智能指针是为了避免手动管理内存时常见的错误&#xff0c;比如内存泄漏、重复释放内存等问题。智能指针通过封装原生指针&#xff08;裸指针&#xff09;和自动释放内存的功能&#xff0c;让开发者更安全和高效…

[渗透]前端源码Chrome浏览器修改并运行

文章目录 简述本项目所使用的代码[Fir](https://so.csdn.net/so/search?qFir&spm1001.2101.3001.7020) Cloud 完整项目 原始页面修改源码本地运行前端源码修改页面布局修改请求接口 本项目请求方式 简述 好久之前&#xff0c;就已经看到&#xff0c;_无论什么样的加密&am…

SPI的学习

工作原理 SPI的工作原理基于主从架构。主设备通过四条主要信号线与一个或多个从设备进行通信&#xff1a; MOSI&#xff08;主输出&#xff0c;从输入&#xff09;DI&#xff08;Master Output Slave Input&#xff09;&#xff1a;主设备发送数据到从设备。MISO&#xff08;…

利用自定义 ref 实现函数防抖

今天来简单介绍一个新的方法&#xff0c;使用自定义 ref 实现函数防抖。 1. 自定义 ref 的来源 自定义 ref 防抖函数来自于前端开发中的两个概念&#xff1a;Vue 的响应式系统 和 数防抖&#xff08;Debounce&#xff09;。 1、Vue 响应式系统&#xff1a;Vue 提供了 ref 和…

SQL 干货 | SQL 反连接

最强大的 SQL 功能之一是 JOIN 操作&#xff0c;它提供了一种优雅而简单的方法&#xff0c;将一个表中的每一条记录与另一个表中的每一条记录结合起来。不过&#xff0c;有时我们可能想从一个表中找到另一个表中没有的值。正如我们将在今天的博客文章中看到的&#xff0c;通过包…

爬虫结合项目实战

由于本人是大数据专业&#xff0c;所以准备的是使用pycharm工具进行爬虫爬取数据&#xff0c;然后实现一个可视化大屏 参考项目&#xff1a; 1.医院大数据可视化最后展示 2. 大数据分析可视化系统展示 代码包&#xff1a;

会话管理——Cookie

会话管理在人机交互中扮演着至关重要的角色&#xff0c;它是指保持用户的整个会话活动的互动与计算机系统跟踪过程。以下是对会话管理的简单介绍&#xff1a; 会话主要分为两类&#xff1a;有状态会话&#xff08;知道对方身份&#xff09;和无状态会话&#xff08;不知道对方…

go mod的使用

1. go中包的介绍和定义 包就是很多golang源码的集合&#xff0c;Go语言为我们提供了很多内置包&#xff0c;如fmt、strconv、strings、sort、errors、time、encoding/json、os、io等。 种类&#xff1a;1、系统内置包 2、自定义包 3、第三方包 系统内置包&…