当前位置: 首页 > news >正文

day33 List接口

List实现类

 java.util.ArrayList:  底层通过数组保存数据 , 查询快,增删慢
 java.util.LinkedList: 底层通过链表保存数据,  查询慢,增删快
 如果对操作性能没有特殊要求,我们一般选择ArrayList即可,同时考虑具体业务
 


List方法 

List<String> link = new LinkedList<>();
link.add("1");
link.get(2);
link.set(0,"一");
Collections.reverse(link);  //自动反转
for (int i = 0; i < link.size() / 2; i++) {String tem = link.get(i);link.set(i, link.get(link.size()-1-i));link.set(link.size()-1-i,tem);
}
System.out.println(link);  //自动反转方法二

 List<Integer> subList = list.subList(3, 8);  //截取集合中的子集(含头不含尾)

集合  数组 的转换

    集合转换成数组

 Collection<String> c = new ArrayList<>();

 Collection提供了将集合转换成数组的方法

  Object[] objects = c.toArray();

ArrayList重载了一个toArray方法

String[] sts = c.toArray(new String[c.size()]);

  数组转换成集合

java.util.Arrays提供了一个静态方法:asList,可以将数组转换成集合

String[] arr = {"one", "two", "three", "four", "five", "six"};

  List<String> list = Arrays.asList(arr);

list.set(2,"二");  //这里会直接报错
System.out.println(list); //打印集合
System.out.println(Arrays.toString(arr));  //打印数组元素
//因为数组是定长的,因此该集合的增删元素都会抛出 UnsupportedOperationException异常
//对集合的操作就是对原数组的操作
//操作数组转换的集合 会改变数组本身 
还有sublist截取的集合子集进行增删也一样会改变集合

如果必须要增删元素,需要自行创建一个新的集合
    所有集合都支持一个参数为Collection的构造函数,

   作用是在创建当前集合的 同时包含指定集合中的所有元素

   
        List<String> list2 = new ArrayList<>(list);

         //创建list2集合的同时包含list集合中的所有元素
 

 

集合的排序

java.utils.Collections提供了一个静态方法,short()

可以对集合进行自然排序(升序,从小到大)

  Collections.sort(list);

自定义排序   Collections.sort(List list)

该方法要求集合元素必须实现接口:Comparable,否则编译不通过。
         * Comparable接口是用来表示实现类是可以比较大小的,

                实现类必须重写方法compareTo
         * compareTo用来定义两个实例比较大小的规则。
         * 例如:包装类, String类等都实现了这个接口
         *
         * 如果该方法不能直接使用,就不建议使用了,因为该方法对我们的代码产生了侵入性。
         * 侵入性:当我们使用某个API时,其要求我们为其更改其他地方的代码,这就是侵入性。
         * 侵入性不利于后期代码维护,应当尽力避免。 侵入性也大大提高了代码的耦合度,违背了
         * 代码“高内聚,低耦合”的原则

自定义排序二

//COllections下的sort方法要想使用必须// 在元素中实现comparable接口//comparable接口是用来表示实现类可以比较大小//实现类必须重写方法//compareTo定义比较大下的规则//Collections重载了short方法//sort(List,Comparator)//需要传入一个比较器对象
//        Comparator<Point> c = new Comparator<Point>() {
//            @Override
//            public int compare(Point o1, Point o2) {
//                int m1 = o1.getX()*o1.getX() + o1.getY()*o1.getY();
//                int m2 = o2.getX()*o2.getX() + o2.getY()*o2.getY();
//                return m1-m2;
//            }
//        };
//        Collections.sort(l,c);//        Collections.sort(l,
//            ( o1, o2) -> (o1.getX()*o1.getX() + o1.getY()*o1.getY())-(o2.getX()*o2.getX() + o2.getY()*o2.getY())
//        );

 


lambda表达式排序集合 

        List<String> list = new ArrayList<>();

        list.add("杨玉捷");
        list.add("博文");
        list.add("殷桃小丸子");
        list.add("西门长海");

  Collections.sort(list,(s1,s2)->s1.length()-s2.length());

 栈内存结构

Stack继承自Vector


 * 特点: 先进后出,后进先出
 * 入栈/压栈 ----数据进入栈
 * 出栈/弹栈-----数据离开栈
 * 栈顶元素------最后放入栈中的元素
 * 栈底元素------最先放入栈中的元素

Stack s = new Stack();
s.push("a");
s.push("b");
s.push("c");
s.push("d");
s.empty();  //是否为空栈
s.pop();  //peek()并删除
s.peek(); //获取栈顶元素
System.out.println(s);
s.search("a");  //从栈顶往下数  1开始

用双端队列表示栈

Deque d= new LinkedList();
d.add("a");
d.add("b");
d.add("c");
d.add("d");d.pop();
d.peek();

Vector

Vector<String> v = new Vector();
System.out.println(v);
System.out.println(v.size());
System.out.println(  v.capacity());//初始容量 10 三目运算符 自动扩容
Enumeration<String> elements = v.elements();
while (elements.hasMoreElements()){String s = elements.nextElement();System.out.println(s);
}

 

相关文章:

day33 List接口

List实现类 java.util.ArrayList&#xff1a; 底层通过数组保存数据 &#xff0c; 查询快&#xff0c;增删慢 java.util.LinkedList&#xff1a; 底层通过链表保存数据&#xff0c; 查询慢&#xff0c;增删快 如果对操作性能没有特殊要求&#xff0c;我们一般选择ArrayList…...

云原生周刊:Linkerd 发布 v2.14 | 2023.9.4

开源项目推荐 Layerform Layerform 是一个 Terraform 包装器&#xff0c;可帮助工程师使用纯 Terraform 文件构建可重用的基础设施。 为了实现重用&#xff0c;Layerform 引入了层的概念。每层都包含一些基础设施&#xff0c;并且可以堆叠在另一层之上。 除了更易于使用之外…...

CS420 课程笔记 P5 - 内存编辑 数据类型

文章目录 IntroductionData typesBooleansNegative numbers (Signed integers)Floating-point numbers (fractional numbers) Unknown value scansHealth findingFloat finding (Player position hack / Teleport hack) Additional things Introduction 这节课将结束数据类型并…...

oracle报错 ORA-02290: 违反检查约束条件问题

保存数据库信息时&#xff0c;提示违反检查约束条件&#xff0c;如图&#xff1a; org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-02290: 违反检查约束条件 (MXUSER…...

Prometheus + grafana 的监控平台部署

一、Prometheus安装 tar -zxvf prometheus-2.44.0.linux-amd64.tar.gz -C /opt/module/ sudo chown -R bigdata:bigdata /opt/module/prometheus-2.44.0.linux-amd64 mv /opt/module/prometheus-2.44.0.linux-amd64 /opt/module/prometheus-2.44.0 ln -s /opt/module/promethe…...

npm、yarn、pnpm

一、简介 CommonJS 的出现&#xff0c;使 node 环境下的 JS 代码可以用模块更加细粒度的划分。一个类、一个函数、一个对象、一个配置等等均可以作为模块&#xff0c;这种细粒度的划分&#xff0c;是开发大型应用的基石。 为了解决在开发过程中遇到的常见问题&#xff0c;比如…...

力扣|两数相加

先放题目&#xff1a; 给你两个非空的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c…...

prometheus通过blackbox-exporter监控web站点证书

1 概述 线上站点普遍是https&#xff0c;因此监控https web站点的证书的过期时间&#xff0c;是一个基础性需求。例如&#xff0c;证书过期会导致tls握手失败&#xff0c;进而导致用户无法正常访问web站点。 blackbox-expoter是一个web服务&#xff0c;它暴露了一个接口&#…...

CentOS7 Hadoop3.3.0 安装与配置

一、安装JDK 1、创建文件夹tools和training用于存放压缩包和解压使用&#xff0c;tools存放压缩包&#xff0c;training用于解压后安装jdk和hadoop的路径。 1&#xff09;回到路径为 / 的位置 cd /2) 创建 tools 和 training mkdir toolsmkdir training3) 进入tools文件夹 …...

2023年9月CDGA/CDGP数据治理认证考试报名,当然弘博创新

据DAMA中国官方网站消息&#xff0c;2023年度第三期DAMA中国CDGA和CDGP认证考试定于2023年9月23日举行。 报名通道现已开启&#xff0c;相关事宜通知如下&#xff1a; 考试科目: 数据治理工程师(CertifiedDataGovernanceAssociate,CDGA) 数据治理专家(CertifiedDataGovernanc…...

Re45:读论文 GPT-1 Improving Language Understanding by Generative Pre-Training

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名&#xff1a;Improving Language Understanding by Generative Pre-Training 论文下载地址&#xff1a;https://www.mikecaptain.com/resources/pdf/GPT-1.pdf 本文是2018年OpenAI的工作&#xff0c…...

VB.NET 如何将某个Excel的工作表中复制到另一个的Excel中的工作表中https://bbs.csdn.net/topics/392861034

参考http://share.freesion.com/306372/可以实现直接拷贝指定表 Private Sub Excel复制工作簿()Dim myExcelApp As New Microsoft.Office.Interop.Excel.ApplicationmyExcelApp.Workbooks.Open(System.Environment.CurrentDirectory "\\测试用例.xlsx", Type.Missin…...

深入解析Kotlin类与对象:构造、伴生、单例全面剖析

前言 本篇文章将带您了解Kotlin编程中的重要概念&#xff1a;类及构造函数、访问修饰符、伴生对象和单例模式。就像搭积木一样&#xff0c;我们会逐步揭开这些概念的面纱&#xff0c;让您轻松理解它们的作用和用法。无论您是编程新手还是有经验的开发者&#xff0c;本文都将为…...

JavaScript构造函数

1、构造函数&#xff1a; 是一个函数&#xff0c;是通过new运算符进行调用&#xff0c;生成一个特殊的对象并返回。 function 函数名([参数]){ this.属性名 ‘属性值’ ... this.属性名 function([参数]){ 函数体语句 } } 通常情况下&#xff0c;建议构造函数的首字母大写 …...

手写嵌入式操作系统(基于stm8单片机)

#include <stc8h.h> #include <intrins.h> #define MAX_TASKS 2 //简化方面,我们当前操作系统只有2个task #define MAX_TASK_DEP 32unsigned char idata task_sp[MAX_TASKS]; // 任务的堆栈指针 unsigned char idata task_stack[MAX_TASKS][MAX_TASK_DEP];// 每个…...

vue3.3 ~

defineModel 原本&#xff1a; // 1 defineProps({modelValue: {type: Number,required: true,default: 0} })defineProps([modelValue]) // 2 const emit defineEmits([update:modelValue])现在&#xff1a; const value defineModel<number>({ default: 0 })defin…...

滑动窗口实例4(将x减到0的最小操作数)

题目&#xff1a; 给你一个整数数组 nums 和一个整数 x 。每一次操作时&#xff0c;你应当移除数组 nums 最左边或最右边的元素&#xff0c;然后从 x 中减去该元素的值。请注意&#xff0c;需要 修改 数组以供接下来的操作使用。 如果可以将 x 恰好 减到 0 &#xff0c;返回 …...

数据库原理及应用(MySQL)

建议大屏观看&#xff0c;避免格式错误&#xff0c;影响观感 目录 第一章 数据库系统概述 1.数据库系统概述 1.1.信息 1.2.数据 1.3.信息和数据之间的联系 1.4.数据库&#xff08;DB&#xff09; 1.5.数据库管理系统&#xff08;DBMS&#xff09; 1.6.数据库管理系统的…...

初识Maven(一)命令行操作和idea创建maven工程

Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供**构建**和**依赖**管理支持的工具。 构建过程包含的主要的环节&#xff1a;- 清理&#xff1a;删除上一次构建的结果&#xff0c;为下一次构建做好准备 - 编译&#xff1a;Java 源程序编译成 *.class 字节码文件…...

MHA高可用配置及故障切换

1&#xff0e;什么是 MHA MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过…...

FPGA/IC秋招面试题 1(解析版)

分享个人觉得遇到还不错的题&#xff0c;后续有会继续补充。。。 以下题目均来自网络平台&#xff0c;用于学习交流如有侵权立马删除!!! 1. Verilog语言中&#xff0c;下面哪些语句不可被综合() A. #delay语句 B. initial语句 C. always语句 D. 用gen…...

华为云 异构数据迁移

数据库和应用迁移 UGO&#xff08;Database and Application Migration UGO&#xff0c;以下简称为UGO&#xff09;是专注于异构数据库结构迁移的专业服务。可将源数据库中的DDL、DML和DCL一键自动转换为华为云GaussDB/RDS的SQL语法&#xff0c;通过数据库评估、对象迁移两大核…...

wininet,winhttp,xmlhttprequest,各版本区别 《转》

一、标准API接口WinINet(Microsoft Windows Internet)和WinHTTP(Microsoft Windows HTTP) 实现Http访问&#xff0c;微软提供了二套API&#xff1a;WinINet, WinHTTP&#xff08;分别封装于system32目录下的wininet.dll和winhttp.dll内&#xff09; 二者主要区别在于后者更为安…...

朴素,word,任何参考文献导入endnote

朴素&#xff0c;word&#xff0c;任何参考文献导入endnote 注意&#xff1a;对于以下这几种不做阐述&#xff0c;看其他帖子都有讲述&#xff1a; 这里的参考文献指的是类似于&#xff1a; [1]. Li Y, Lu Y, Huo X, et al. Bandgap tuning strategy by cations and halide io…...

数学建模--三维图像绘制的Python实现

目录 1.绘制三维坐标轴的方法 2.绘制三维函数的样例1 3.绘制三维函数的样例2 4.绘制三维函数的样例3 5.绘制三维函数的样例4 6.绘制三维函数的样例5 1.绘制三维坐标轴的方法 #%% #1.绘制三维坐标轴的方法 from matplotlib import pyplot as plt from mpl_toolkits.mplot3…...

Spring Cloud Alibaba-Feign整合Sentinel

第1步: 引入sentinel的依赖 <!--sentinel客户端--> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> 第2步: 在配置文件中开启Feign对Sentinel的…...

zabbix配置钉钉告警、和故障自愈

钉钉告警python脚本 cat python20 #!/usr/bin/python3 #coding:utf-8 import requests,json,sys,os,datetime # 机器人的Webhook地址 webhook"钉钉" usersys.argv[1] textsys.argv[3] data{"msgtype": "text","text": {"conten…...

Web安全测试(五):XSS攻击—存储式XSS漏洞

一、前言 结合内部资料,与安全渗透部门同事合力整理的安全测试相关资料教程,全方位涵盖电商、支付、金融、网络、数据库等领域的安全测试,覆盖Web、APP、中间件、内外网、Linux、Windows多个平台。学完后一定能成为安全大佬! 全部文章请访问专栏:《全栈安全测试教程(0基…...

本地PC机通过SSH方式远程Jetson

1. 检测电脑是否安装openSSH 以管理员身份运行powershell终端输入以下命令&#xff1a; Get-WindowsCapability -Online | ? Name -like OpenSSH*若没有安装OpenSSH&#xff0c;会出现如下图提示&#xff1a; 输入Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.…...

面向对象 学习黑马视频(03)

1.内存分区模型 /* 面向对象编程** 内存分区模型* 1.代码区&#xff1a;存放函数体的二进制代码&#xff0c;由操作系统进行管理的* 2.全局区&#xff1a;存放全局变量和静态变量以及常量* 3.栈区&#xff1a;由编译器自动分配释放&#xff0c;存放函数的参数值…...

yanderedev.wordpress/地推接单正规平台

这里是水果店早读课&#xff0c;水果店主同行交流圈子&#xff0c;持续分享&#xff0c;帮助新手入门。 水果店的水果去定价是比较复杂的事情&#xff0c;根据不同的情况去定价是常有的事情&#xff0c;有哪些情况需要去区别定价呢。 1、不同时期定价策略不同 同质量水果时&…...

温室大棚建设 网站及排名转卖/做网站用什么软件

文章目录1. 项目结构2. 页面组成3. json配置文件4. 认识页面5. WXML6. WXSS7. js文件8. 宿主环境9. 组件10. API11. 协同工作与发布跟公众号平台不共用一个账号&#xff0c;需要用其它邮箱另行注册&#xff0c;填写身份证信息&#xff08;姓名、身份证号码&#xff09;&#xf…...

校园 网站建设 知乎/优化网站建设seo

JQuery元素外增加元素的方法&#xff0c;从JQuery1.4起&#xff0c;部分方法可以接受一个函数作为参数。 传入after/before中作为参数的函数有两个&#xff0c;一个是JQuery1.4新增的&#xff0c;接受一个参数&#xff0c;为当前元素在选中的元素集中的位置索引&#xff0c;索…...

安装wordpress模板/活动推广宣传方案

计算机开放电子书汇总 站点站点源码100个gcc小技巧 在线阅读PDF格式EPUB格式MOBI格式100个gdb小技巧 在线阅读PDF格式EPUB格式MOBI格式关于浏览器和网络的 20 项须知 在线阅读PDF格式EPUB格式MOBI格式2015互联网企业校招笔试题 MEGA下载Github下载3周3页面 在线阅读PDF格式EPUB…...

网站怎么做才有效果/网络违法犯罪举报网站

QtCreator:没有CDB二进制档可用为二进制格式在x86-windows-msvc2008-pe-32bit" 最近安装QtCreator, 可以编译运行程序, 启动调试时提示: "没有CDB二进制档可用为二进制格式在x86-windows-msvc2008-pe-32bit" 这样的错误;解决方法: 网上搜索并安装dbg_x86_6.11.1…...

公司做一个网站内容如何设计/兰州网络推广公司哪家好

什么是TCP Window TCP Window可能是需要理解的数据传输过程里最重要的部分了, 尤其是对于数据中心而言, 因为备份工作是每天都要进行的. 在今天的数据中心中, 高带宽的高可用性和高速连接使得提供应用程序服务器和备份服务器之间的几个G吞吐量变得更容易了. 随着WAN(wide area …...