资料内容:
Java 标准库数据结构的基本⽤法
Java 中最基本的数据类型叫 Primitive Type(原始类型),⽐如 int, char, long, boolean 这种⼩写字
⺟的关键字。⼤家应该都学过 C 语⾔,所以对于原始类型应该不陌⽣,因为 C 语⾔⾥⼏乎只有原始类型,连
字符串都只能⽤ char[] 字符数组来表示,只能使⽤指针进⾏操作,使⽤起来⾮常不⽅便。
当然,作为⾼级编程语⾔,Java 提供了很多⾼级数据类型,都封装成了标准库中的类(Java 中类的名字都以
⼤写字⺟开头),⽐如 Java 中的字符串就是 String 类,这个类有 length(), substring() 等⽅法,这
样我们就不⽤管底层的操作细节,使⽤起来⽅便多了。我会在 数据结构精品课 会中带⼤家实现标准库中的常
⻅数据结构类,深⼊理解其底层的实现细节,帮助⼤家更深⼊地理解常⽤数据结构。
以下是⼀些基本的 Java 类型。
1、数组。
初始化⽅法:
int m = 5, n = 10;
// 初始化⼀个⼤⼩为 10 的 int 数组
// 其中的值默认初始化为 0
int[] nums = new int[n]
// 初始化⼀个 m * n 的⼆维布尔数组
// 其中的元素默认初始化为 false
boolean[][] visited = new boolean[m][n];
作为原始类型,这就类似 C 语⾔的 int 数组,操作起来⽐较麻烦,所以我们更多地使⽤ ArrayList 动态数
组,后⾯的视频课会详细讲解。
2、字符串 String
Java 的字符串处理起来挺麻烦的,因为它不⽀持⽤ [] 直接访问其中的字符,⽽且不能直接修改,要转化成
char[] 类型才能修改。主要说下 String 中我们会⽤到的⼀些特性:
String s1 = "hello world";
// 获取 s1[2] 那个字符 l
char c = s1.charAt(2);
char[] chars = s1.toCharArray();
chars[1] = 'a';
String s2 = new String(chars);
// 输出:hallo world
System.out.println(s2);
// 注意,⼀定要⽤ equals ⽅法判断字符串是否相同
if (s1.equals(s2)) {
// s1 和 s2 相同
} else {
// s1 和 s2 不相同
}
// 字符串可以⽤加号进⾏拼接
String s3 = s1 + "!";
// 输出:hello world!
System.out.println(s3);
Java 的字符串不能直接修改,要⽤ toCharArray 转化成 char[] 的数组进⾏修改,然后再转换回 String
类型。
另外,虽然字符串⽀持⽤ + 进⾏拼接,但是效率并不⾼,并不建议在 for 循环中使⽤。如果需要进⾏频繁的
字符串拼接,推荐使⽤ StringBuilder/StringBuffer:
StringBuilder sb = new StringBuilder();
for (char c = 'a'; c <= 'f'; c++) {
sb.append(c);
}
// append ⽅法⽀持拼接字符、字符串、数字等类型
sb.append('g').append("hij").append(123);
String res = sb.toString();
// 输出:abcdefghij123
System.out.println(res);