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

01|Java中常见错误或不清楚

补充:length vs length() vs size()

1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.

2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.

3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!

00. 包装类

  • 就是基本数据类型的对应类:
    在这里插入图片描述
  • 我们常见的:基本类转为包装类。int i = 10; Integer i1 = i;,实际上是Java虚拟机
    自动用这句话Integer i1 = Integer.valueOf(i);帮你实现了。
  • 常见的:包装类转为基本类。int i2 = i1;,实际上Java虚拟机自动用int i2 = i1.intValue();帮你实现了。

01. 工具类

  • 工具类不应该创建对象才能使用。即,可以直接使用类中的属性和方法,一般声明为静态的。
  • 提供的属性和方法都是公共的。

02. 比较

  • 所有的基本数据类型用==
  • 所有的引用类型用equals()

02.0 == (数值/地址)

  • 基本数据类型,==比较的是数值
int i =10;
double j = 10.0;
System.out.println(i==j);
  • 引用数据类型,== 比较的是内存地址
String s ="abc";
String str = "abc";
System.out.println(s==str);

02.1 equals()

  • String类中的equals()是被重写过的,所以比较内容
String s = "abc";
String s1 = new String("abc");
System.out.println(s.equals(s1);
  • 其他自定义的类的equals(),使用的是Object中的,他是使用==,所以比较的是地址,如果比较内容,需要重写。

03. 集合

  • 导包:import java.util.*;
  • 遇到对数量不确定的数据处理时,需要用集合类。
  • 数组虽然能容纳数据,但是长度每次一旦申明后就固定了,没有集合对象方便。

03.0 两大体系

  • 单一数据体系:Collection接口
  • 成对出现的数据体系:即键值对数据。Map接口

03.1 Collection接口

  • List:按照插入顺序保存数据,数据可以重复的
    • 具体实现类:ArrayListLinkedList
  • Set:集,无序保存,数据不能重复。
    • 具体实现类:HashSet
  • Queue:队列(先进先出)
    • 具体实现类:ArrayBlockingQueue

03.2 Map接口

  • 具体实现:HashMapHashtable

03.3 ArrayList

03.3.0 常用方法1
导包:import java.util.ArrayList;
创建:ArrayList list = new ArrayList();
打印:System.out.println(list);
增加数据:add()
// 集合中没有任何数据,会创建长度为10的数组存储zhangsan
list.add("zhangsan"); 
list.add("lisi");
list.add("wangwu");

在这里插入图片描述

获取长度:size()
list.size();
获取索引位置的数据:get()
list.get(1); //获取下标为1的数据
遍历ArrayList

方法1:

for(int i=0; i<list.size(); ++i){System.out.println("结合中的数据:"+list.get(i));
}

方法2:
for(循环对象:集合){}

for(Object obj : list){System.out.println(obj);
}
修改数据:set()

返回的值是修改前的值。下面的oldVal值为"zhangsan"

list.add("zhangsan"); 
list.add("zhangsan");
list.add("wangwu");
Object oldVal = list.set(1, "lisi");
System.out.println("修改前的值:"+oldVal);
删除数据

返回的值是删除前的值。下面的removeVal值为"lisi"

Object removeVal = list.remove(1); //删除下标为1的数据
System.out.println("删除的值" + removeVal);
03.3.1 常用方法2
add()方法可以指定位置添加数据
ArrayList list = new ArrayList();
list.add("zhangsan");
list.add("lisi");
list.add("wangwu");
// 在下标为1的位置插入数据
list.add(1,"zhaoliu");
addAll()可插入新的集合
ArrayList otherList = new ArrayList();
otherList.add("1");
otherList.add("2");
otherList.add("3");
list.addAll(otherList);
clear()清空所有数据
list.clear();
removeAll() 清空指定的集合
ArrayList list = new ArrayList();
list.add("zhangsan");
list.add("lisi");
list.add("wangwu");ArrayList otherList = new ArrayList();
otherList.add("1");
otherList.add("2");
otherList.add("3");
list.addAll(otherList); //往list中插入其他集合otherList
//删除list中的otherList
list.removeAll(otherList);
contains() 判断是否含某条数据
ArrayList list = new ArrayList();
list.add("zhangsan");
list.add("lisi");
list.add("wangwu");
System.out.println("lisi");
indexOf() 判断数据首次出现的位置
  • 返回首次出现的位置
System.out.println(list.indexOf("zhangsan"));
lastlndexOf() 判断数据最后出现的位置
ArrayList list = new ArrayList();
list.add("zhangsan");
list.add("lisi");
list.add("zhangsan");
System.out.println("zhangsan");
toArray() 集合变数组
Object[] obj = list.toArray();

03.4 LinkedList

  • 即,链表集合

03.4.0 常用方法

构建集合对象
LinkedList list = new LinkedList();
增加数据
list.add("zhangsan");
获取数据(getFirst(),getLast() )
下面用例的结果都显示“zhangsan”,侧面反映了First和Last节点和zhangsan节点挂上了。
System.out.println(list.getFirst());
System.out.println(list.getLast());
在节点前面增加数据
LinkedList list = new LinkedList();
list.add("zhangsan");
list.addFirst("lisi");
// 验证
System.out.println(list.getFirst());
System.out.println(list.getLast());
指定位置插入节点
LinkedList list = new LinkedList();
list.add("zhangsan");
list.addFirst("lisi");
list.add(1,"wangwu");
// 验证
System.out.println(list.getFirst());
System.out.println(list.getLast());
System.out.println(list);
获取数据:get()
//获取指定位置的数据
System.out.println(list.get(i));
//遍历list
for(int i=0; i<list.size(); ++i){ System.out.println(list.get(i));
}
//通过元素来遍历
for(Object obj: list){System.out.println(obj);
}
修改数据:set()
LinkedList list = new LinkedList();
list.add("zhangsan");
list.addFirst("lisi");
list.add(1,"wangwu");
//修改数据,将lisi改为zhaosi
list.set(2,"zhaosi");
// 验证
System.out.println(list);
删除数据:remove()
LinkedList list = new LinkedList();
list.add("zhangsan");
list.addFirst("lisi");
list.add(1,"wangwu");
list.remove("wangwu");
System.out.println(list);

03.4.1 常用方法

addAll() 添加集合
LinkedList list = new LinkedList();
list.add("0");
list.add("1");
list.add("2");
LinkedList list1 = new LinkedList();
list1.add("5");
list1.add("4");
list1.add("3");
//
list.addAll(list1);
push() 添加数据,等同于addFirst()
LinkedList list = new LinkedList();
list.add("0");
list.add("1");
list.add("2");
list.push("aaa"); // 添加在第一个位置
pop() 弹出数据,等同于remove()
  • remove() 默认是删除第一个数据
LinkedList list = new LinkedList();
list.add("0");
list.add("1");
list.add("2");
list.pop(); // 弹出"0"

相关文章:

01|Java中常见错误或不清楚

补充&#xff1a;length vs length() vs size() 1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性. 2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法. 3.java中的siz…...

递归的用法和例子

b站视频&#xff1a;https://www.bilibili.com/video/BV1iS4y1e7MJ/?spm_id_from333.999.0.0&vd_source1717654b9cbbc6a773c2092070686a95 # 递归的定义&#xff1a;其实就是自己调用自己&#xff0c;一般用函数的形式来进行 """ 特点&#xff1a; 1、一定…...

极狐GitLab 企业级 CI/CD 规模化落地实践指南(一)

目录 template 引用&#xff0c;减少代码冗余&#xff0c;增强 CI/CD 构建扩展性 问题 1&#xff1a;代码冗余&#xff0c;低效实践 问题 2&#xff1a;维护性难&#xff0c;工作量大 ➤ local ➤ file ➤ remote ➤ template 收益 1&#xff1a;一处修改&#xff0c;多…...

springBoot 简单的demo

springBoot 学习开始 场景开发流程1、创建项目2、导入依赖3、创建启动springBoot 项目的主入口程序4、创建业务程序5、在MainApplication文件运行程序6、将文件打包成jar包 遇到的问题未解决 希望大哥们帮忙--本地运行jar包报错 场景 浏览器发送hello请求&#xff0c;返回“he…...

[国产MCU]-BL602开发实例-实时时钟(RTC)

RTC 文章目录 RTC1、RTC介绍2、RTC使用实例RTC(real-time clock)为操作系统中的实时时钟设备,为操作系统提供精准的实时时间和定时报警功能。当设备下电后,通过外置电池供电,RTC继续记录操作系统时间;设备上电后,RTC提供实时时钟给操作系统,确保断电后系统时间的连续性。…...

大数据Flink(六十三):SqlClient工具的使用

文章目录 SqlClient工具的使用 一、​​​​​​​入门...

哈威比例多路阀控制放大器

多路比例阀放大器控制负载敏感原理的比例多路换向阀&#xff0c;它用于与负载无关的、无级调节液压执行元件的运动速度。 多个执行元件可以同时和相互无关地进行工作。 这种类型的阀主要用于行走液压机械&#xff08;例如&#xff1a;起重控制系统&#xff09;。 通过选择执行元…...

Java bean 是个什么概念?

Java bean可以把它比作一个"智能的容器"&#xff0c;它具备封装数据的能力。 Java bean是一种可重用的软件组件&#xff0c;它主要用于在Java应用程序中存储和传递数据。它是一种符合特定规范的Java类&#xff0c;通过封装数据和提供访问方法&#xff0c;使数据的管…...

微服务系列文章之 Springboot+Vue实现登录注册

一、springBoot 创建springBoot项目 分为三个包&#xff0c;分别为controller&#xff0c;service&#xff0c; dao以及resource目录下的xml文件。 UserController.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 …...

【Docker】如何在设计 dockerfile 过程中,设置容器启动后的定时任务

如何在设计 dockerfile 过程中&#xff0c;设置容器启动后的定时任务 jwensh 2023.08.14 文章目录 如何在设计 dockerfile 过程中&#xff0c;设置容器启动后的定时任务1. 基于 alpine 设计 dockerfile 过程中&#xff0c;设置容器启动后的定时任务2. 基于 CentOS 设计 Dockerf…...

【leetcode】第三章 哈希表part01

242.有效的字母异位词 使用HashMap public boolean isAnagram(String s, String t) {HashMap<Character,Integer> map new HashMap();int sLen s.length();int tLen t.length();if (sLen ! tLen) return false;// 统计词频for (int i 0; i < s.length(); i) {ch…...

Docker中Tomcat部署步骤

第一次访问没有东西。...

pycharm 安装库

这是另一种方式。 搜索到的安装库的方式多数是&#xff1a;在桌面上winR键运行终端&#xff0c;输入命令&#xff0c;安装不了&#xff0c;发现安装不了。 1、打开pycharm&#xff1b; 2、软件下部的Terminal终端(需要运行一个代码才能出现&#xff0c;任何代码都可)&#xf…...

使用 Ploomber、Arima、Python 和 Slurm 进行时间序列预测

推荐&#xff1a;使用 NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 简短的笔记本说明 笔记本由 8 个任务组成&#xff0c;如下图所示。它包括建模的大多数基本步骤 - 获取数据清理、拟合、超参数调优、验证和可视化。作为捷径&#xff0c;我拿起笔记本并使用Soorgeon工具…...

springboot第35集:微服务与flutter安卓App开发

Google Playplay.google.com/apps/publis…[1]应用宝open.qq.com/[2]百度手机助手app.baidu.com/[3]360 手机助手dev.360.cn/[4]vivo 应用商店dev.vivo.com.cn/[5]OPPO 软件商店&#xff08;一加&#xff09;open.oppomobile.com/[6]小米应用商店dev.mi.com/[7]华为应用市场dev…...

java 把list转成json

在Java中&#xff0c;将List转换成JSON格式是非常常见的任务。JSON是一种轻巧的数据交换格式&#xff0c;非常适合于Web应用程序&#xff0c;特别是前端开发。 使用Java将List转换成JSON格式的最简单方法是通过JSON库。最常用的JSON库是 Jackson&#xff0c;它提供了快速&…...

R语言实现随机生存森林(2)

library(survival) library(randomForestSRC) help(package"randomForestSRC") #构建普通的随机生存森林 data(cancer,package"survival") lung$status<-lung$status-1 rfsrc.fit1 <- rfsrc(Surv(time, status) ~ ., lung,ntree 100,block.size 1,…...

泛型类接口方法学习

一、泛型 1 概念 泛型(Generics)&#xff0c;广泛的类型。最大用途是给集合容器添加标签&#xff0c;让开发人员知道容器里面放到是什么类型&#xff0c;并且自动对放入集合的元素进行类型检查。 类比实参和形参&#xff0c;我们在对方法中的变量操作时&#xff0c;并没有指…...

Docker自动化部署安装(十)之安装SonarQube

这里选择的是&#xff1a; sonarqube:9.1.0-community (推荐使用) postgres:9.6.23 数据库(sonarqube7.9及以后便不再支持mysql&#xff0c;版本太低的话里面的一些插件会下载不成功的) 1、docker-sonarqube.yml文件 version: 3 services:sonarqube:container_name: sonar…...

[QT/C++]如何得知鼠标事件是由触摸事件转换而来的,使得鼠标触摸事件分离

依据来源&#xff1a;https://doc.qt.io/qt-5/qml-qtquick-mouseevent.html 具体是在event事件或者mouse系列事件中捕获到鼠标事件后&#xff0c;用如下代码判断鼠标事件是否由触摸事件转换而来的 if(mouseEvent->source()Qt::MouseEventSynthesizedBySystem){qDebug()<&…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...