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

news2024/12/22 23:58:50

补充: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"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

你是否知道,汽车充电桩控制主板也有可调性?

你是否知道&#xff0c;汽车充电桩控制主板也有可调性?它可以随着使用环境的改变&#xff0c;调整充电桩的参数&#xff0c;满足不同的需求。那么&#xff0c;它的可调性到底体现在哪些方面呢? 汽车充电桩控制板的可调性主要体现在以下三个方面&#xff1a; 1. 设备的参数调节…

nodejs+vue+elementui考研互助交流网站

语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;VScode 前端nodejsvueelementui,该系统采用vue技术和B/S结构进行开发设计&#xff0c;后台使用MySQL数据库进行数据存储。系统主要分为两大模…

Unity框架学习--5 事件中心管理器

作用&#xff1a;访问其它脚本时&#xff0c;不直接访问&#xff0c;而是通过发送一条“命令”&#xff0c;让监听了这条“命令”的脚本自动执行对应的逻辑。 原理&#xff1a; 1、让脚本向事件中心添加事件&#xff0c;监听对应的“命令”。 2、发送“命令”&#xff0c;事件…

低压系统浪涌保护器的综合应用方案

低压系统浪涌保护器&#xff08;Surge Protective Device&#xff0c;SPD&#xff09;是一种用于限制瞬态过电压和导引泄放电涌电流的非线性防护器件&#xff0c;用以保护耐压水平低的电器或电子系统免遭雷击及雷击电磁脉冲或操作过电压的损害。SPD的应用可以有效提高低压系统的…

首发 | FOSS分布式全闪对象存储系统白皮书

一、 产品概述 1. 当前存储的挑战 随着云计算、物联网、5G、大数据、人工智能等新技术的飞速发展&#xff0c;数据呈现爆发式增长&#xff0c;预计到2025年中国数据量将增长到48.6ZB&#xff0c;超过80%为非结构化数据。 同时&#xff0c;数字经济正在成为我国经济发展的新…

怎么使用手机远程控制Win10电脑?

可以使用手机远程控制电脑吗&#xff1f; “近期&#xff0c;我将出差一段时间。问题是&#xff0c;我希望能够从很远的地方浏览家里电脑上的一些东西&#xff0c;但我不会一直随身携带笨重的笔记本电脑。我可以手机远程访问Windows电脑吗&#xff1f; ” 当然&am…

亚马逊feedback和review有什么区别

在亚马逊上&#xff0c;"Feedback"&#xff08;反馈&#xff09;和"Review"&#xff08;评论&#xff09;是两个不同的概念&#xff0c;它们在购物体验中起着不同的作用。 Feedback&#xff08;反馈&#xff09;&#xff1a; 亚马逊的"Feedback"…

Jay17 2023.8.14日报 即 留校集训阶段性总结

8.14 打了moeCTF&#xff0c;还剩一题ak Web。 Jay17-集训结束阶段性总结&#xff1a; 集训产出&#xff1a; 自集训开始以来一个半月&#xff0c;最主要做的事情有三。 一是跟课程&#xff0c;复习学过的知识&#xff0c;学习新的知识&#xff1b;目前课程已大体听完&…

QGIS3.28的二次开发九:添加矢量要素

对矢量要素的编辑是 GIS 软件很重要的功能点之一&#xff0c;也是最难实现的功能点之一。编辑矢量要素涉及到很多方面的考虑&#xff0c;包括且不限于矢量要素的几何类型&#xff0c;拓扑关系&#xff0c;构成要素的节点的增删改&#xff0c;编辑会话 (session) 的启动、回溯和…

Tuxera NTFS Mac2023最新免费版Mac读写工具

有时候我们在使用苹果笔记本的时候&#xff0c;会遇到一些问题&#xff0c;比如怎么打开移动硬盘&#xff0c;或者为什么苹果电脑读不出U盘。这些问题可能让我们感到困惑和沮丧&#xff0c;但其实都有解决办法。本文就来为大家介绍一下苹果笔记本怎么打开移动硬盘和苹果电脑读不…

MRO数字化帮助企业实现明显降本增效

MRO&#xff08;Maintenance, Repair and Operations&#xff09;数字化是指将传统的维修、保养和运营管理过程数字化&#xff0c;以提高效率、降低成本、提高质量和可靠性。MRO数字化是企业数字化转型的重要抓手之一&#xff0c;因为它可以帮助企业实现明显的降本增效。 MRO数…

CSS变形与动画(二):perspctive透视效果 与 preserve-3d 3d效果(奥运五环例子)

文章目录 perspective 3d透视效果preserve-3d 3d嵌套效果例子 奥运五环 backface-visibility 背面效果 perspective 3d透视效果 perspective 指定了观察者与 z0 平面的距离&#xff0c;使具有三维位置变换的元素产生透视效果。z>0 的三维元素比正常大&#xff0c;而 z<0 …

WMS系统库存锁定:提升物流管理效率

一、库存锁定的概念 库存锁定是WMS系统中的一个重要功能&#xff0c;它在物流运作过程中发挥着关键的作用。库存锁定是指在物流流程中&#xff0c;将特定的库存数量或者位置与订单或任务相关联&#xff0c;以确保这些库存不会在未经授权的情况下被其他操作所改变或消耗。库存锁…

「2024」预备研究生mem-论证推理强化:引入前提(上)

一、引入前提&#xff08;上&#xff09; 二、课后练习

DP——背包问题

DP——背包问题 01背包问题分数背包问题多重背包问题完全背包问题 当我们谈论背包问题时&#xff0c;可以想象成一个小朋友要去旅行&#xff0c;但是他只能带一个容量有限的背包。他有一些物品可以选择放入背包&#xff0c;每个物品都有自己的重量和价值。小朋友的目标是在不超…

安卓逆向 - 某麦网 x-mini-wua x-sgext x-sign x-umt x-utdid

本文仅供学习交流&#xff0c;只提供关键思路不会给出完整代码&#xff0c;严禁用于非法用途&#xff0c;若有侵权请联系我删除&#xff01; 目标app: 5aSn6bqm572ROC41LjQ 目标接口&#xff1a;aHR0cHM6Ly9hY3MubS50YW9iYW8uY29tL2d3L210b3AuZGFtYWkud2lyZWxlc3MuZGlzY292ZX…

【历史上的今天】8 月 15 日:苹果推出初代 iMac;谷歌收购摩托罗拉移动;Fuchsia 首次发布

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 8 月 15 日&#xff0c;在 1878 年的今天&#xff0c;我国第一套邮票发行。中国是一个文明古国&#xff0c;在邮政通信方面&#xff0c;有着悠久的历史。早在三…

C语言实例_和校验算法

一、算法介绍 和校验&#xff08;Checksum&#xff09;是一种简单的纠错算法&#xff0c;用于检测或验证数据传输或存储过程中的错误。它通过对数据进行计算并生成校验和&#xff0c;然后将校验和附加到数据中&#xff0c;在接收端再次计算校验和并进行比较&#xff0c;以确定…

10个经典战略分析模型,助力洞察市场明确优势

在企业的经营管理过程中&#xff0c;要时刻清晰内外部环境和自身的优劣势&#xff0c;做好企业略规划&#xff0c;进行企业内外部资源的分析&#xff0c;对经营环境&#xff0c;企业核心竞争力有足够的判断&#xff0c;才能明确企业的发展方向。本文为大家分享10个常用的战略分…

Leetcode每日一题:833. 字符串中的查找与替换(2023.8.15 C++)

目录 833. 字符串中的查找与替换 题目描述&#xff1a; 实现代码与思路&#xff1a; 哈希表 模拟 原理思路&#xff1a; 833. 字符串中的查找与替换 题目描述&#xff1a; 你会得到一个字符串 s (索引从 0 开始)&#xff0c;你必须对它执行 k 个替换操作。替换操作以三个…