Java学习笔记(水)

1.各种类

1.System.out

System.out 是 Java 中的标准输出流,属于 PrintStream 类。它主要用于在控制台输出数据。System.out 提供了许多方法,可以输出各种类型的数据。以下是 System.out 所在的 PrintStream 类的常用方法:

常用方法:

  1. print():

    • 输出数据但不换行。
    • 支持多种数据类型:
      • print(boolean b)
      • print(char c)
      • print(char[] s)
      • print(double d)
      • print(float f)
      • print(int i)
      • print(long l)
      • print(Object obj)
      • print(String s)
  2. println():

    • 输出数据并自动换行。
    • 支持同样多种数据类型:
      • println(): 输出空行(只换行)
      • println(boolean b)
      • println(char c)
      • println(char[] s)
      • println(double d)
      • println(float f)
      • println(int i)
      • println(long l)
      • println(Object obj)
      • println(String s)
  3. printf():

    • 格式化输出,类似于 C 语言的 printf
    • 支持格式化字符串,适用于多种类型的输出。
    • 语法:printf(String format, Object... args)
    • 常用的格式化符号:
      • %d: 输出整数
      • %f: 输出浮点数
      • %s: 输出字符串
      • %n: 换行
      • %c: 输出字符
  4. format():

    • format()printf() 类似,用于格式化输出。
    • 语法:format(String format, Object... args)
  5. append():

    • 将字符或字符串追加到输出流中。
    • 支持几种不同类型:
      • append(char c)
      • append(CharSequence csq)
      • append(CharSequence csq, int start, int end)
  6. write():

    • 将字节数据写入输出流,不常用于普通文本输出,主要用于字节流输出。
    • 支持以下形式:
      • write(byte[] b, int off, int len)
      • write(int b)
  7. flush():

    • 强制将缓冲区中的数据输出。
    • System.out 是带缓冲的输出流,有时为了确保数据被立即输出,可以调用 flush()
  8. close():

    • 关闭输出流,释放相关资源。在程序执行时通常不需要显式调用,因为 JVM 会自动管理 System.out 的生命周期。

2.Scanner

在 Java 中,Scanner 类用于从输入流(如控制台、文件等)读取各种类型的数据。以下是 Scanner 类常用的方法及其作用:

1. 基本输入方法

  • next(): 读取下一个单词(以空格或换行符为分隔)。
  • nextLine(): 读取一整行,直到换行符为止。
  • nextInt(): 读取下一个整数。
  • nextFloat(): 读取下一个浮点数(float 类型)。
  • nextDouble(): 读取下一个双精度浮点数(double 类型)。
  • nextBoolean(): 读取下一个布尔值(truefalse)。
  • nextByte(): 读取下一个字节(byte 类型的整数)。
  • nextShort(): 读取下一个短整数(short 类型)。
  • nextLong(): 读取下一个长整数(long 类型)。
  • nextBigInteger(): 读取一个大整数(BigInteger 类型)。
  • nextBigDecimal(): 读取一个大浮点数(BigDecimal 类型)。

2. 检查输入是否存在

  • hasNext(): 检查是否还有下一个输入。
  • hasNextLine(): 检查是否还有下一行。
  • hasNextInt(): 检查是否有下一个整数。
  • hasNextFloat(): 检查是否有下一个 float 值。
  • hasNextDouble(): 检查是否有下一个 double 值。
  • hasNextBoolean(): 检查是否有下一个布尔值。
  • hasNextByte(): 检查是否有下一个字节。
  • hasNextShort(): 检查是否有下一个短整数。
  • hasNextLong(): 检查是否有下一个长整数。

3. 跳过输入

  • skip(String pattern): 跳过当前输入中匹配指定正则表达式的部分。
  • next(String pattern): 读取匹配指定正则表达式的下一个输入。

4. 关闭 Scanner

  • close(): 关闭 Scanner,释放其占用的资源。

5. 其他实用方法

  • findInLine(String pattern): 从当前行找到并返回匹配指定正则表达式的文本。
  • findWithinHorizon(String pattern, int horizon): 在给定的范围内查找匹配指定正则表达式的文本。
  • useDelimiter(String pattern): 设置输入的分隔符,默认是空格和换行符。


3.Arrays

  • 排序

    • Arrays.sort(): 对数组进行升序排序。
import java.util.Arrays;

public class ArraysSortExample {
    public static void main(String[] args) {
        int[] numbers = {5, 2, 8, 1, 3};
        Arrays.sort(numbers);
        System.out.println(Arrays.toString(numbers));  // 输出:[1, 2, 3, 5, 8]
    }
}
  • 搜索

    • Arrays.binarySearch(): 在已排序的数组中进行二分查找,返回元素的索引或负值(表示元素不存在)。
import java.util.Arrays;

public class ArraysBinarySearchExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 5, 8};
        int index = Arrays.binarySearch(numbers, 5);
        System.out.println("Index of 5: " + index);  // 输出:Index of 5: 3
    }
}
  • 填充

    • Arrays.fill(): 将数组的所有元素填充为指定的值。
import java.util.Arrays;

public class ArraysFillExample {
    public static void main(String[] args) {
        int[] numbers = new int[5];
        Arrays.fill(numbers, 10);
        System.out.println(Arrays.toString(numbers));  // 输出:[10, 10, 10, 10, 10]
    }
}
  • 比较

    • Arrays.equals(): 比较两个数组的内容是否相同。
import java.util.Arrays;

public class ArraysEqualsExample {
    public static void main(String[] args) {
        int[] array1 = {1, 2, 3};
        int[] array2 = {1, 2, 3};
        boolean isEqual = Arrays.equals(array1, array2);
        System.out.println("Arrays equal: " + isEqual);  // 输出:Arrays equal: true
    }
}
  • 转换为字符串

    • Arrays.toString(): 将一维数组转换为字符串表示。
    • Arrays.deepToString(): 将多维数组转换为字符串表示。
import java.util.Arrays;

public class ArraysToStringExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        System.out.println(Arrays.toString(numbers));  // 输出:[1, 2, 3, 4, 5]
    }
}
import java.util.Arrays;

public class ArraysDeepToStringExample {
    public static void main(String[] args) {
        int[][] numbers = {{1, 2}, {3, 4}};
        System.out.println(Arrays.deepToString(numbers));  // 输出:[[1, 2], [3, 4]]
    }
}
  • 复制

    • Arrays.copyOf(): 复制数组的一部分或全部内容到一个新数组中。
    • Arrays.copyOfRange(): 复制数组的指定范围到一个新数组中 
import java.util.Arrays;

public class ArraysCopyOfExample {
    public static void main(String[] args) {
        int[] original = {1, 2, 3, 4, 5};
        int[] copy = Arrays.copyOf(original, 3);
        System.out.println(Arrays.toString(copy));  // 输出:[1, 2, 3]
    }
}
import java.util.Arrays;

public class ArraysCopyOfRangeExample {
    public static void main(String[] args) {
        int[] original = {1, 2, 3, 4, 5};
        int[] copy = Arrays.copyOfRange(original, 1, 4);
        System.out.println(Arrays.toString(copy));  // 输出:[2, 3, 4]
    }
}

  • 设定数组的指定位置的值

    • Arrays.setAll(): 使用指定的函数设置数组的每个元素的值。
import java.util.Arrays;

public class ArraysSetAllExample {
    public static void main(String[] args) {
        int[] numbers = new int[5];
        Arrays.setAll(numbers, i -> i * 2);
        System.out.println(Arrays.toString(numbers));  // 输出:[0, 2, 4, 6, 8]
    }
}

4.ArrayList

添加元素

  • add(E e): 在列表末尾添加元素。
  • add(int index, E element): 在指定位置插入元素。
  • addAll(Collection<? extends E> c): 将指定集合中的所有元素添加到列表末尾。
  • addAll(int index, Collection<? extends E> c): 从指定位置开始,将指定集合中的所有元素添加到列表。

访问和修改元素

  • get(int index): 返回指定位置的元素。
  • set(int index, E element): 用指定元素替换指定位置的元素。

删除元素

  • remove(Object o): 删除首次出现的指定元素。
  • remove(int index): 删除指定位置的元素。
  • removeAll(Collection<?> c): 删除列表中所有与指定集合相同的元素。
  • removeIf(Predicate<? super E> filter): 删除所有与给定条件匹配的元素。
  • clear(): 删除所有元素。

查找和检查

  • contains(Object o): 检查列表是否包含指定元素。
  • indexOf(Object o): 返回列表中首次出现指定元素的索引。
  • lastIndexOf(Object o): 返回列表中最后一次出现指定元素的索引。
  • isEmpty(): 检查列表是否为空。

大小和容量

  • size(): 返回列表中元素的数量。
  • trimToSize(): 将列表的容量调整为当前大小,减少内存使用。

转换和集合操作

  • toArray(): 返回包含列表中所有元素的数组。
  • toArray(T[] a): 返回包含列表中所有元素的数组,并将其存储到指定数组中。

迭代

  • iterator(): 返回列表的迭代器。
  • listIterator(): 返回列表的列表迭代器。
  • forEach(Consumer<? super E> action): 使用指定的操作遍历列表中的每个元素。

排序和其他操作

  • sort(Comparator<? super E> c): 使用指定的比较器对列表进行排序。
  • subList(int fromIndex, int toIndex): 返回列表中指定范围的视图(子列表)。

比较

  • equals(Object o): 检查列表是否与指定对象相等。
  • hashCode(): 返回列表的哈希码。

特殊操作

  • replaceAll(UnaryOperator<E> operator): 使用指定的操作替换列表中的所有元素。
  • shuffle(Random rnd): 打乱列表中的元素顺序。

5.Random

生成随机数

  • nextInt(): 返回一个随机的 int 值。
  • nextInt(int bound): 返回一个在 0(包含)和指定 bound(不包含)之间的随机 int 值。
  • nextLong(): 返回一个随机的 long 值。
  • nextDouble(): 返回一个在 0.0(包含)和 1.0(不包含)之间的随机 double 值。
  • nextFloat(): 返回一个在 0.0(包含)和 1.0(不包含)之间的随机 float 值。
  • nextBoolean(): 返回一个随机的 boolean 值。
  • nextShort(): 返回一个随机的 short 值。
  • nextChar(): 返回一个随机的 char 值。
  • nextBytes(byte[] bytes): 将随机生成的字节填充到指定的字节数组中。
  • nextGaussian(): 返回一个符合高斯分布(正态分布)的随机 double 值。

生成随机数的范围

  • nextInt(int origin, int bound): 返回一个在 origin(包含)和 bound(不包含)之间的随机 int 值。
  • nextDouble(double origin, double bound): 返回一个在 origin(包含)和 bound(不包含)之间的随机 double 值。

种子设置和状态

  • setSeed(long seed): 设置随机数生成器的种子。相同的种子会导致相同的随机数序列。
  • getSeed(): 获取当前的种子值(注意这个方法在标准 Random 类中不存在,但在一些扩展实现中可能会有)。

Random 类构造函数

  • Random(): 创建一个使用当前时间戳作为种子的随机数生成器。
  • Random(long seed): 创建一个使用指定种子的随机数生成器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值