基本数据类型
对应的包装类
最值
Integer.MAX_VALUE
Integer.MIN_VALUE
字符常见方法
将数字字符转成数字
char c = '2';
System.out.println((int) c); //50
System.out.println(c - '0'); //2
将数字字符转换为数字,不能直接使用类型强转,类型强转得到的时字符的ASCII码。
字符串转换
字符串转数字
Integer.parseInt("124"); //124
Integer.parseInt("12e3"); //报错
Double.parseDouble("3.14"); //3.14
Double.parseDouble("3.4s5"); //报错
数字转字符串
String.valueOf(124); //"124"
String.valueOf(3.14); //"3.14"
取随机数
随机整数
Random random = new Random();
// 生成int类型范围内的随机整数
int randomInt = random.nextInt();
// 生成指定范围内的随机整数
int range = max - min;
int scaledInt = random.nextInt(range) + min; // 生成min到max之间的随机整数
随机小数
Random random = new Random();
// 生成0.0到1.0之间的随机小数
double randomDouble = random.nextDouble();
// 生成min到max之间的随机小数
double range = max - min + 1;
double scaledDouble = random.nextDouble() * range + min;
数组
数组由一组类型相同的元素组成。
创建数组
类型[] arr = new 类型[元素个数];
类型[] arr = {元素1, 元素2, ..., 元素n};
返回数组
// 返回空数组
return new 类型[0];
// 返回带元素的数组
return new 类型[]{元素1, 元素2, ..., 元素n};
复制数组
在Java中,可以使用 System.arraycopy() 方法或者循环来实现数组元素的复制。
System.arraycopy() 方法用于将一个数组的元素复制到另一个数组中。它的语法如下:
System.arraycopy(源数组, 源数组起始位置, 目标数组, 目标数组起始位置, 要复制的元素个数);
示例:
int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[5];
System.arraycopy(sourceArray, 0, targetArray, 0, sourceArray.length);
排序数组
在Java中,可以使用 Arrays.sort() 方法来对数组进行排序,默认为升序排列。
Arrays.sort(arr, new Comparator<类型>() {
// 返回值为数字,大于0表示降序,小于0表示升序
@Override
public int compare(类型 o1, 类型 o2) {
return o1.compareTo(o2);
}
});
交换数组元素
int temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
随机取数组元素
Random random = new Random();
int randomIndex = startIndex + random.nextInt(endIndex - startIndex + 1);
int randomElement = array[randomIndex];
打印数组
字符串
字符串由一组字符组成。
列表(List)
List是一个接口,存储有序可重复元素。
常用API
创建列表就初始化值
List<Integer> list = new ArrayList<Integer>() {{
add(1);
add(2);
add(3);
}};
// 注意这个方式创建的list只能读
List<Integer> list = Arrays.asList(1, 2, 3);
交换列表元素
Collections.swap(list, i, j);
排序列表
Collections.sort(list, new Comparator<类型>() {
// 返回值为数字,大于0表示降序,小于0表示升序
@Override
public int compare(类型 o1, 类型 o2) {
return o1.compareTo(o2);
}
});
打乱列表
Collections.shuffle(list)
反转列表
Collections.reverse(list)
统计列表
Collections.max(list)
Collections.min(list)
Collections.frequency(list)
替换列表元素
Collections.replaceAll(list, oldVal, newVal)
集合(Set)
Set是Java中的一个接口,它是Collection接口的子接口之一。Set表示一个无序且不包含重复元素的集合。
常见API
创建列表时初始化
Set<Integer> set= new HashSet<Integer>() {{
add(1);
add(2);
add(3);
}};
字典(Map)
Map是Java中的一个接口,它表示一组键值对(key-value pairs)。
常见API
创建Map时初始化
Map<String, String> map = new HashMap<String, String>(){{
put("A", "a");
put("B", "b");
put("C", "c");
}};
遍历Map
可以使用不同的方式来遍历Map,下面是几种常见的遍历方式:
- 使用keySet()遍历键:
Map<K, V> map = ...; // 假设有一个名为map的Map对象
for (K key : map.keySet()) {
// 使用key获取对应的值
V value = map.get(key);
// 在这里进行处理
}
2. 使用entrySet()遍历键值对:
Map<K, V> map = ...; // 假设有一个名为map的Map对象
for (Map.Entry<K, V> entry : map.entrySet()) {
K key = entry.getKey();
V value = entry.getValue();
// 在这里进行处理
}
3. 使用迭代器遍历键或值:
Map<K, V> map = ...; // 假设有一个名为map的Map对象
// 遍历键
Iterator<K> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
K key = iterator.next();
// 在这里进行处理
}
// 遍历值
Iterator<V> iterator = map.values().iterator();
while (iterator.hasNext()) {
V value = iterator.next();
// 在这里进行处理
}
栈
栈(Stack)是一种具有后进先出(LIFO)特性的数据结构。在Java中,可以使用java.util.Stack类来表示栈
常见API
创建栈
Stack<Integer> stack = new Stack<>();
队列
队列(Queue)是一种具有先进先出(FIFO)特性的数据结构。在Java中,可以使用java.util.Queue接口来表示队列。
常见API
创建队列
Queue<String> queue = new LinkedList<>();
需特别注意,Stack为类,因此用Stack初始化,而Queue为接口,通常使用LinkedList初始化