ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Java学习笔记05 常用工具类与动态数组

Java学习笔记05 常用工具类与动态数组

01 Arrays

import java.util.Arrays; 它有许多用途,如给数组自动排序、打印数组等,可以上菜鸟教程查阅,也可以询问AI助手,以获取更多用法

02 List

import java.util.List; List指线性表,其中包含ArrayList,是数组实现的动态数组(可以自动扩容的数组)。此类可以创造或将数组转化为动态数组,并进行一系列操作

格式:List<数据类型> 动态数组名 args=Arrays.asList(数组名);其中数据类型和数组的相同,且二者都必须为首字母大写的全称,原因会在03说明。

此时可以直接通过sout打印整个list,获取长度从arr.length变为list.size()由于是方法所以需要加(),获取单个元素也从arr[下标]变为list.get(下标)

自己创建动态数组时,需要用到

ArrayList<数据类型(包装类)> 对象变量名= new ArrayList<>();


也可以不设定数据类型,ArrayList list2= new ArrayList<>(); 这样可以存储任意数据,但应用麻烦,不推荐使用

03 基本数据类型的包装类

int - Integer byte - Byte long - Long float - Float double - Double
int 在代码中是一个关键字 是一种类型 但是不是一个class类。为了兼容性: 针对每个基本数据类型都定义了一个class

例如,在Integer类里,我们可以看到定义的整形数值上限,进制转换方法等。

一般情况下 使用 int 与 Integer 没有区别(除了上文的),原因是它们有自动装箱,自动拆箱功能

int a = 100;
Integer a1 = a;// 自动装箱,将一个普通的整数变量 存入一个 整数类型对象变量中
System.out.println(Integer.toBinaryString(a1)); //对象可以调用函数,用来转进制等
int a2 = a1;// 自动拆箱 ,将一个整数型对象变量转为一个基本类型整数变量
System.out.println(a+a1);
对于它们还有比较特殊的一点:

Integer b1 = 128; Integer b2 = 128; System.out.println(b1==b2); false Integer b1 = 100; Integer b2 = 100; System.out.println(b1==b2); true

对于对象,==比较的是对象在内存中的存储地址,Integer类自己为常用的数字(8位二进制)提前定义了缓存空间,调用时会直接取,因此两个变量地址相同;128超出上限,系统会为它新创建一片储存空间,因此两个变量地址不同。 比较对象变量大小需要用到equals()方法 System.out.println(b1.equals(b2)); true

04 方法

1.注意remove封装箱区别;

2.视图

3.对于数组转换过来的asList,大小是固定的,不能add或remove,但能set,要增添数据时需要用循环或拷贝方法将数据转移到动态数组里去

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进