Java基础差缺补漏系列之集合系列1

变邻域搜索(VNS)原理梳理和应用细节-附求解VRPTW问题C++代码 文章目录1、简介-introduction2、VNS的基本机制2.1 变邻域下降方法-Variable Neighborhood Descent2.2基本变邻域搜索方法-Basic Variable Neighborhood Search2.3 终止准则3、VNS的拓展和混杂算法3.1 VNS的拓展3.2 变邻域分解搜索-Variable Neighborhood Decomposition Search3.3 偏变邻域搜索-Skewed VNS3.4 并行变邻域搜索-Parallel VNS4、VNS和其 阅读详情

java

我又回来啦!!!,今天带来基础差缺补漏系列之集合1

每日格言:

遇顺境,处之淡然,遇逆境,处之泰然!

集合

什么是算法和数据结构

算法:

  1. 可以解决具体问题。例如:1+2+3+4+5.。。+99+100

    流程=算法

  2. 有设计解决的具体的流程

    算法1:(1+100)× 50= 101 × 50–>高斯算法

  3. 有评价这个算法的具体指标

    有评价这个算法的具体的指标–>时间复杂度,空间复杂度(从数学角度考虑)


数据结构:如何组织管理数据的结构,按照某种规则结构来组织管理我们的数据

数据结构分为:

  1. 逻辑结构:–>思想上的结构–>卧室,厨房,卫生间–>线性表(数组,链表),图,树,栈,队列
  2. 物理结构:–>真实结构–>钢筋混凝土+牛顿力学–>紧密结构(顺序结构),跳转结构(链式结构)

以线性表为例:

线性表逻辑结构表述图:

线性表的特点:

线性表是n个数据类型相同的数据元素的有限序列,通常记作:a,ai-1,ai,ai+1

1.相同的数据类型

线性表中可以有n个相同属性的元素,比如可以都是数字,可以都是字符,相同类型意味着每一个元素占用相同的内存空间。

2序列(顺序性)

ai-1,ai,ai+1为例子,ai的前一位是ai-1,ai的后一位是ai+1,一般ai0为表头,除了表头和表尾元素外,任何一个元素有且仅有一个直接前驱和一个直接后继

3有限

线性表中的数据元素定义为n,n是个有限值,当n=0的时候就是线性表为空,在非空的线性表中每个数据元素都有唯一确定的序号,下标

逻辑结构和物理结构的关系

线性表逻辑,对应真实的如果是紧密结构,典型:数组;

线性表逻辑结构,对应的真实结构如果是跳转结构,典型为链表

什么是紧密结构?

在存储数据的时候选择相邻的位置存储,

以int数组为例,int 4位,下图所示:

优点:

寻址快–>查找元素快

缺点:

删除和增加元素效率低

什么是跳转结构?

以链表为例

单向链表:

每一个元素的位置除了存放自己的数据还要存放寻找下一个元素的地址

双向链表:

每个元素除了存放自己的数据,还存放了上一个元素的地址和下一个元素的地址

循环链表:

就是首元素和尾元素互相指向,首尾相连

跳转结构:

优点:删除元素,插入元素效率高,

缺点:查询元素效率地。为什么?

应为我如果像查找一个元素我要从上一个寻找,如果多的话,十分麻烦,数组寻址找是直接寻找,效率十分之快

集合前言

数组,集合都是对多个数据进行存储操作,简称为容器

PS:这里的存储是内存层面的存储,而不是持久化存储

数组:只能存放同一种类型的数据

,长度无法更改,只能放同一种类型的数据

一旦指定了长度,那么长度就被确定,不可以更改,删除增加效率低,无法直接判断数组的实际元素的数量,需要我们自己去写,存储为有序,可重复。

如何解决数组的缺点?

用于解决数组缺点的新的存数的数据结构—>集合

集合

我们有很多集合,为什么要学习这么多集合,应为不容的集合底层的数据机构不一样

将集合分为两种类型

存储方式:

一个一个数据的存储

一对一对数据的存数

colletion接口

  • 新增:add(E e)
  • 修改:
  • 删除:remove(Object o),clear()
  • 查看:iterator(),size()
  • 判断:contains(Object o),equals(Object o),isEmpty()
/*
* 新增:add(E e)
* 修改:
* 删除:remove(Object o),clear()
* 查看:iterator(),size()
* 判断:contains(Object o),equals(Object o),isEmpty()
* */


    public static void main(String[] args) {
        //接口不能创建对象:利用实现类创建
        Collection col = new ArrayList();
//        集合有一个特点,只能存放引用数据类型,不能是基本数据类型,
//        基本数据类型自动装箱,对应包装类
        col.add(18);
        col.add(12);
        col.add(15);
        System.out.println(col);
        List list = Arrays.asList(new Integer[]{2,1,3,4,5});
        col.addAll(list);
        System.out.println(col);
        col.clear();
        System.out.println(col);
        System.out.println("集合的数量:"+col.size());
        System.out.println("集合是否为空:"+col.isEmpty());
        boolean remove = col.remove(15);
        System.out.println(col);
        System.out.println("是否删除成功:"+remove);

        Collection col2 = new ArrayList();
        col2.add(18);
        col2.add(12);
        col2.add(15);

        Collection col3 = new ArrayList();
        col3.add(18);
        col3.add(12);
        col3.add(15);
        System.out.println(col2.equals(col3));

集合有一个特点,只能存放引用数据类型,不能是基本数据类型,那我们为什么加入基本类型没有报错?
解:基本数据类型自动装箱,对应包装类

遍历的两种方式
  1. ​ 增强for循环

            for (Object o : col) {
                System.out.println(o);
            }
    
  2. ​ 迭代器

            Iterator it = col.iterator();
            while (it.hasNext()){
                System.out.println(it.next());
            }
    

    迭代器简略执行原理:

使用KITTI数据集测试不同算法的性能 该文章将使用同一个kitti数据集来测试不同算法的性能,目前已经测试的算法包括:LIO-SAM,FAST-LIO2,Point-LIO,Faster-LIO。 阅读详情

相关推荐

NVIDIA GPU任务调度全景:从Block分配到Warp发射

GPU并行计算的核心是任务调度,而CUDA kernel在GPU上的执行并非简单的一次性操作,而是经过从CPU命令队列到硬件前端,再到GigaThread引擎和Warp Scheduler的多层协同。理解这一过程,是性能优化的基础。Warp作为硬件调度的基本单位,其状态切换与延迟隐藏能力直接决定计算单元的利用率;而Occupancy作为衡量SM上活跃Warp池大小的指标,也并非越高越好,需要结合访存模式与资源占用综合判断。对于多任务并发场景,Stream优先级、计算抢占、MIG硬件隔离与MPS软件共享等机制

weixin_32612263的博客 270

基于Dubbo和Nacos搭建微服务的配置中心和服务注册中心

1.SpringCloud Alibaba集成Nacos,dubbo集成Nacos,实现服务注册与发现。

逆熵架构 3212

别再死记硬背参数了!用ADS手把手教你仿真一个4GHz镜像抑制混频器(附完整工程文件)

本文详细解析了4GHz镜像抑制混频器的ADS仿真全流程,从理论到实践,涵盖混频器设计基础、ADS工程搭建、二极管选型、非线性仿真及性能优化。通过实战案例,帮助工程师掌握关键参数平衡与调试技巧,提升射频电路设计效率。

weixin_42552716的博客 339

SpringCloud | Dubbo 微服务实战——注册中心详解

Eureka,Nacos,Consul,Zookeeper在Spring Cloud和Dubbo中实战

Why_does_it_work的博客 7774

使用 Python+PaddleOCR 实现图文识别:从入门到精通

在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等。PaddleOCR 是百度开源的一款强大的 OCR 工具包,它集成了多种先进的算法和模型,能够高效准确地进行图文识别。本文将详细介绍如何使用 PaddleOCR 和 Python 实现图文识别,并给出具体的代码和步骤。

爱搬砖的程序猿 5474

服务器被攻击植入挖矿病毒,CPU占用高问题排查处理(.systemd-service.sh)

客户服务器遭攻击,部署的应用服务经常性被停止,服务器CPU占用居高不下,top查看如下: 可以看到第一个bash任务,占用cpu近400%,非正常的应用程序和脚本任务,多半是被植入了木马信息。 查看该进程的符号连接,发现已经是被删除的状态 /usr/bin/-bash (deleted),无法查看其启动程序的信息 查看定时任务:cat /etc/crontab,发现都是正常的应用程序定时脚本 又用 crontab -l 查看了一下,发现了异常定时任务如下,同top里的异常任务一致...

gottst0113的博客 2120

Dubbo+zookeeper微服务架构之服务注册与发现的简单使用

服务注册与发现 每日格言: 如果要挖井,就要挖到水出为止。 技术栈: springboot dubbo zookeeper 注册中心推荐zookeeper 下载链接:在3.5.5版本后,官方提供了bin的包,可以不需要配置环境,直接上手查看 https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz 之后以管理员方式启动bin文件夹中的cmd文件 会报错,我们需要吧conf

doomwatcher的博客 415

从入门到精通:dirmap 高级 Web 目录扫描实战指南

本文提供了一份从环境搭建到高级配置的dirmap Web目录扫描实战指南。详细解析了工具安装、核心配置文件dirmap.conf的深度调优,包括递归扫描、四种扫描模式(字典、爆破、爬虫、Fuzz)的实战应用,并演示了分阶段资产发现的完整工作流程,帮助安全人员高效发现隐藏目录与敏感文件。

rnn9storyteller的博客 482

Dubbo学习记录(十二)--服务导出之注册到zookeeper

Java百战成仙

玄霄 2672

【100%通过率】华为od机试C卷【特殊的加密算法】Python 实现

有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下1.明文为一段数字串由0-9组成2.密码本为数字0-9组成的二维数组3.需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里的数字串是由相邻的单元格数字组成,上下和左右是相邻的,注意:对角线不相邻,同一个单元格的数字不能重复使用。

MISAYAONE的博客 5924

jira的详细使用教程

​jira的详细使用教程,1,Jira- 是一款缺陷管理软件工具,用其进行缺陷的管理和跟踪。(是B/S架构的软件) 2,主要涉及的角色: 3,具体工作流 添加工作流 1.点击项目设置

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 3295

Dubbo与zookeeper、Dubbo与Nacos实现服务注册与发现案例

dubbo+zookeeper实现服务注册与发现 dubbo+nacos实现服务注册与发现

只为code醉的博客 1525

基于jeecgboot3.9.0的项目管理——项目工作台(二)

基于jeecgboot3.9.0的项目管理——项目工作台(二)

宁波阿成的博客 206

java查缺补漏

语法示例:“.” : 匹配任何字符。“\d”:任何数字[0-9]的简写;“\D”:任何非数字[^0-9]的简写;“\s”: 空白字符:[ \t\n\x0B\f\r] 的简写“\S”: 非空白字符:[^\s] 的简写“\w”:单词字符:[a-zA-Z_0-9]的简写“\W”:非单词字符:[^\w]代码示例://.表示任意一个字符System.out.println("你".matches(".."));//false。

weixin_38472038的博客 842

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java基础差缺补漏系列之集合系列2

java 每日格言 明道德以固本,重修养以安魂,知廉耻以净心,去贪欲以守节。 linkedlist 底层为链表 LinkedList 常用方法: 增加:addFirst(E e),addLast(E e),offer(E e),offerFirst(E e),offerLast(E e) 删除:poll(),pollFirst(),pollLast(),removeFirst(),removeLast() 修改:set(int index, E element) 查看:element(),getFirst

doomwatcher的博客 194

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java基础差缺补漏系列之集合系列3

集合 每日格言 行动出成果,工作出财富。 Map接口 ​ 无序,唯一 HashMap 特点:无序。唯一, 特点是按照key进行总结的,因为底层key寻找哈希表的结构(数组+链表) 哈希表原理:如放入这个集合数据的对应的类,必须重写HashCode和equals这两个方法,否则结果就不符合唯一,无序的特点 添加:put(K key, V value), putAll(Map<? extends K,? extends V> m) 修改: 删除:clear(),remove(Object ke

doomwatcher的博客 196

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

JAVA核心,200例,查缺补漏

适用于想要查缺补漏的人;本已经掌握的技术,但是不知道如何表达的人;不断完善技自己。 一、JAVA基础 1.JDK和JRE有什么区别? 解析:首先,JDK和JRE是Java开发和运行工具,其中JDK包含了JRE,但是JRE是可以独立安装的,它们再开发和运行时起到了不同的作用。 1>.JDK是Java Development kit的缩写,是Java开发工具包,主要包含了各种工具和类库,当然也包...

VIP_1205169154的博客 1347

2020年最新最全的Java面试经历整理(一次性查缺补漏个够)

前言 现在已经是2020年了,相信很多人都在准备面试,,如何拿到心仪的 Offer,进入梦寐以求的大厂,实现自己的职业理想,达到程序员的小康水平。 这篇文章主要介绍了刘哥一月份的几次面经,(一次性查缺补漏个够),(感谢刘哥的内容提供) 对于面试的那几家公司暂不公布,望理解。 第一家(Zookeeper+微服务+消息中间件+高并发架构设计) 一面 JVM数据存储模型,新生代、年老代的构造? jav...

豆汁 1万+

java基础的查缺补漏

java基础的查缺补漏~!

weixin_45905080的博客 320

java string左补内容_Java(基础)面试题帮你查缺补漏

原标题:Java(基础)面试题帮你查缺补漏我们在学习Java的过程中,有的时候不知道自己掌握的如何,这个时候除了多敲代码,还可以找一些面试题来自己回答一下,看看自己的基础到底掌握的怎么样。下面是一些经常被提问的Java基础面试题,希望能够帮助大家查缺补漏。1、JDK 和 JRE 有什么区别?答:JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发...

weixin_32237761的博客 167

JAVA集合详解(五周目)

HashSet是一个没有重复元素且无序的集合。它允许使用null元素,但最多只能存储一个null,因为其内部不允许有重复元素。HashSet是通过HashMap实现的,它内部含有一个HashMap类型的成员变量,HashSet的操作函数实际上都是通过这个HashMap实现的。

2403_87845034的博客 2143

Java基础(查缺补漏)

Java(查缺补漏)个人学习笔记

kkoyy459的博客 437

java查缺补漏之集合的学习

java集合学习 集合 Collection list 有序且可重复,称之为序列,可以精准的控制每个元素的位置,有两个主要实现类: ArrayList(动态数组) 实例化方法 // 无参构造实例化,初始容量为10 List arrayList1 = new ArrayList(); // 实例化一个初始容量为20的空列表 List arrayList2 = new ArrayList(20); // 实例化一个集合元素为 arrayList2 的列表(由于 arrayList2 为空

qq_43527128的博客 263

java 中操作字符串都有哪些类?它们之间有什么区别?_Java(基础)面试题帮你查缺补漏...

我们在学习Java的过程中,有的时候不知道自己掌握的如何,这个时候除了多敲代码,还可以找一些面试题来自己回答一下,看看自己的基础到底掌握的怎么样。下面是一些经常被提问的Java基础面试题,希望能够帮助大家查缺补漏。青岛Java1、JDK 和 JRE 有什么区别?答:JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。JRE:Jav...

weixin_39992957的博客 546

Java基础复习-集合

Java基础复习-集合 本文仅对java学习知识的查缺补漏 集合框架概述 集合、数组都是对多个数据进行存储操作的结构,简称Java容器。(这里讲的存储都指的是对内存的操作) 数组在存储多个数据方面的特点: 一旦初始化以后,长度就确定了,长度不可修改; 数组一旦定义好后,其元素的类型也就确定了。比如:String[] arr; int[] arr1;; 数组中提供的方法非常有限,对于添加、删除、插入数据等操作,非常不便。 数组存储数据的特点:有序、可重复;对于无序、不可重复的需求,不能满足。 J

DFGOMC的博客 221

八股查缺补漏

所以在 JDK 1.8 版本的时候做了优化,当一个链表的长度超过8的时候就转换数据结构,不再使用链表存储,而是使用红黑树,查找时使用红黑树,时间复杂度O(log n),可以提高查询性能,但是在数量较少时,即数量小于6时,会将红黑树转换回链表。==对于基本类型来说比较的是内存地址是否相同,即内存中指向的对象是否是同一个,而equals比较的是对象内容是否一样,比如创建两个字符串s1和s2都是hello,然后用==判断就为false,用equals就是true。把字节流(或字符串)恢复为 Java 对象。

A18266678650的博客 889
上一篇: Springcloud:Eureka服务注册与发现
下一篇: 大前端进阶篇:es6语法中let和const解决了什么问题
冷环渊
博客等级 码龄7年 1130粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷环渊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值