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:按照插入顺序保存数据,数据可以重复的- 具体实现类:
ArrayList,LinkedList
- 具体实现类:
Set:集,无序保存,数据不能重复。- 具体实现类:
HashSet
- 具体实现类:
Queue:队列(先进先出)- 具体实现类:
ArrayBlockingQueue
- 具体实现类:
03.2 Map接口
- 具体实现:
HashMap,Hashtable
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中常见错误或不清楚
补充:length vs length() vs size() 1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性. 2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法. 3.java中的siz…...
递归的用法和例子
b站视频:https://www.bilibili.com/video/BV1iS4y1e7MJ/?spm_id_from333.999.0.0&vd_source1717654b9cbbc6a773c2092070686a95 # 递归的定义:其实就是自己调用自己,一般用函数的形式来进行 """ 特点: 1、一定…...
极狐GitLab 企业级 CI/CD 规模化落地实践指南(一)
目录 template 引用,减少代码冗余,增强 CI/CD 构建扩展性 问题 1:代码冗余,低效实践 问题 2:维护性难,工作量大 ➤ local ➤ file ➤ remote ➤ template 收益 1:一处修改,多…...
springBoot 简单的demo
springBoot 学习开始 场景开发流程1、创建项目2、导入依赖3、创建启动springBoot 项目的主入口程序4、创建业务程序5、在MainApplication文件运行程序6、将文件打包成jar包 遇到的问题未解决 希望大哥们帮忙--本地运行jar包报错 场景 浏览器发送hello请求,返回“he…...
[国产MCU]-BL602开发实例-实时时钟(RTC)
RTC 文章目录 RTC1、RTC介绍2、RTC使用实例RTC(real-time clock)为操作系统中的实时时钟设备,为操作系统提供精准的实时时间和定时报警功能。当设备下电后,通过外置电池供电,RTC继续记录操作系统时间;设备上电后,RTC提供实时时钟给操作系统,确保断电后系统时间的连续性。…...
大数据Flink(六十三):SqlClient工具的使用
文章目录 SqlClient工具的使用 一、入门...
哈威比例多路阀控制放大器
多路比例阀放大器控制负载敏感原理的比例多路换向阀,它用于与负载无关的、无级调节液压执行元件的运动速度。 多个执行元件可以同时和相互无关地进行工作。 这种类型的阀主要用于行走液压机械(例如:起重控制系统)。 通过选择执行元…...
Java bean 是个什么概念?
Java bean可以把它比作一个"智能的容器",它具备封装数据的能力。 Java bean是一种可重用的软件组件,它主要用于在Java应用程序中存储和传递数据。它是一种符合特定规范的Java类,通过封装数据和提供访问方法,使数据的管…...
微服务系列文章之 Springboot+Vue实现登录注册
一、springBoot 创建springBoot项目 分为三个包,分别为controller,service, 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 过程中,设置容器启动后的定时任务 jwensh 2023.08.14 文章目录 如何在设计 dockerfile 过程中,设置容器启动后的定时任务1. 基于 alpine 设计 dockerfile 过程中,设置容器启动后的定时任务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 安装库
这是另一种方式。 搜索到的安装库的方式多数是:在桌面上winR键运行终端,输入命令,安装不了,发现安装不了。 1、打开pycharm; 2、软件下部的Terminal终端(需要运行一个代码才能出现,任何代码都可)…...
使用 Ploomber、Arima、Python 和 Slurm 进行时间序列预测
推荐:使用 NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 简短的笔记本说明 笔记本由 8 个任务组成,如下图所示。它包括建模的大多数基本步骤 - 获取数据清理、拟合、超参数调优、验证和可视化。作为捷径,我拿起笔记本并使用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 软件商店(一加)open.oppomobile.com/[6]小米应用商店dev.mi.com/[7]华为应用市场dev…...
java 把list转成json
在Java中,将List转换成JSON格式是非常常见的任务。JSON是一种轻巧的数据交换格式,非常适合于Web应用程序,特别是前端开发。 使用Java将List转换成JSON格式的最简单方法是通过JSON库。最常用的JSON库是 Jackson,它提供了快速&…...
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),广泛的类型。最大用途是给集合容器添加标签,让开发人员知道容器里面放到是什么类型,并且自动对放入集合的元素进行类型检查。 类比实参和形参,我们在对方法中的变量操作时,并没有指…...
Docker自动化部署安装(十)之安装SonarQube
这里选择的是: sonarqube:9.1.0-community (推荐使用) postgres:9.6.23 数据库(sonarqube7.9及以后便不再支持mysql,版本太低的话里面的一些插件会下载不成功的) 1、docker-sonarqube.yml文件 version: 3 services:sonarqube:container_name: sonar…...
[QT/C++]如何得知鼠标事件是由触摸事件转换而来的,使得鼠标触摸事件分离
依据来源:https://doc.qt.io/qt-5/qml-qtquick-mouseevent.html 具体是在event事件或者mouse系列事件中捕获到鼠标事件后,用如下代码判断鼠标事件是否由触摸事件转换而来的 if(mouseEvent->source()Qt::MouseEventSynthesizedBySystem){qDebug()<&…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...
2025年全国I卷数学压轴题解答
第19题第3问: b b b 使得存在 t t t, 对于任意的 x x x, 5 cos x − cos ( 5 x t ) < b 5\cos x-\cos(5xt)<b 5cosx−cos(5xt)<b, 求 b b b 的最小值. 解: b b b 的最小值 b m i n min t max x g ( x , t ) b_{min}\min_{t} \max_{x} g(x,t) bmi…...
RocketMQ 客户端负载均衡机制详解及最佳实践
延伸阅读:🔍「RocketMQ 中文社区」 持续更新源码解析/最佳实践,提供 RocketMQ 专家 AI 答疑服务 前言 本文介绍 RocketMQ 负载均衡机制,主要涉及负载均衡发生的时机、客户端负载均衡对消费的影响(消息堆积/消费毛刺等…...
基于Java的离散数学题库系统设计与实现:附完整源码与论文
JAVASQL离散数学题库管理系统 一、系统概述 本系统采用Java Swing开发桌面应用,结合SQL Server数据库实现离散数学题库的高效管理。系统支持题型分类(选择题、填空题、判断题等)、难度分级、知识点关联,并提供智能组卷、在线测试…...
Windows开机自动启动中间件
WinSW(Windows Service Wrapper 是一个开源的 Windows 服务包装器,它可以帮助你将应用程序打包成系统服务,并实现开机自启动的功能。 一、下载 WinSW 下载 WinSW-x64.exe v2.12.0 (⬇️ 更多版本下载) 和 sample-minimal.xml 二、配置 WinS…...
成工fpga(知识星球号)——精品来袭
(如需要相关的工程文件请关注知识星球:成工fpga,https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!) 《孩子都能学会的FPGA》系列是成工完成的第一个系列,也有一年多的时…...
