java学习(含Arrays、StringBuilder、Calendar)

    科技2025-06-15  21

    数组

    Arrays 类包含用于操作数组的各种方法(例如排序和搜索)。还包含一个静态工厂,允许将数组转为 List。

    常用方法

    方法描述 List asList(T… a)返回由指定数组构造的 Listvoid sort(Object[] a)对数组进行排序void fill(Object[] a, Object val)为数组的所有元素都赋上相同的值boolean equals(Object[] a, Object[] a2)检查两个数组是否相等int binarySearch(Object[] a, Object key)对排序后的数组使用二分法查找数据 package Method; import java.util.Arrays; import java.util.Random; public class ArraysDemo { public static void main(String[] args) { int[] arr=new int[9]; Arrays.fill(arr, 10); System.out.println("用fill全部赋值后的数组arr:"+Arrays.toString(arr)); Random random=new Random(); for(int i=0;i<arr.length;i++){ arr[i]=random.nextInt(101);//随机赋值100以内的数 } System.out.println("利用random随机赋值后的数组arr:"+Arrays.toString(arr)); arr[5]=34; Arrays.sort(arr); System.out.println("利用sort排序后的数组arr:"+Arrays.toString(arr)); int j=Arrays.binarySearch(arr, 34); System.out.println("arr值为34的下标是:"+j); int[] arr2=Arrays.copyOf(arr, arr.length); System.out.println("arr和arr2是否是一样的数组:"+Arrays.equals(arr, arr2)); } } 用fill全部赋值后的数组arr:[10, 10, 10, 10, 10, 10, 10, 10, 10] 利用random随机赋值后的数组arr:[55, 37, 31, 40, 4, 98, 73, 64, 21] 利用sort排序后的数组arr:[4, 21, 31, 34, 37, 40, 55, 64, 73] arr值为34的下标是:3 arr和arr2是否是一样的数组:true

    StringBuilder

    StringBuilder 类是可变的。它是 String 的对等类,它可以增加和编写字符的可变序列,并且能够将字符插入到字符串中间或附加到字符串末尾(当然是不用创建其他对象的)。 StringBuilder 的构造方法:

    构造方法说明StringBuilder()构造一个其中不带字符的 StringBuilder,其初始容量为 16 个字符StringBuilder(CharSequence seq)构造一个 StringBuilder,它包含与指定的 CharSequence 相同的字符StringBuilder(int capacity)构造一个具有指定初始容量的 StringBuilderStringBuilder(String str)并将其内容初始化为指定的字符串内容

    StringBuilder 类的常用方法:

    方法描述insert(int offsetm,Object obj)返回值类型为StringBuilder,在 offsetm 的位置插入字符串 objappend(Object obj)返回值类型为StringBuilder,在字符串末尾追加字符串 objlength()返回值类型为int,确定 StringBuilder 对象的长度setCharAt(int index,char ch)返回值类型为void,使用 ch 指定的新值设置 index 指定的位置上的字符toString()返回值类型为String,转换为字符串形式reverse()返回值类型为StringBuilder,反转字符串delete(int start, int end)返回值类型为StringBuilder,删除调用对象中从 start 位置开始直到 end 指定的索引(end-1)位置的字符序列replace(int start, int end, String str)返回值类型为StringBuilder,使用一组字符替换另一组字符。将用替换字符串从 start 指定的位置开始替换,直到 end 指定的位置结束 public class StringBuilderTest { public static void main(String[] args) { StringBuilder str=new StringBuilder("I"); str.append("java"); str.insert(1, " love "); String t=str.toString(); System.out.println(str); System.out.println(t); System.out.println(str.length()); str.replace(7, 11, "you"); System.out.println(str); System.out.println(str.reverse()); } }

    结果显示:

    I love java I love java 11 I love you uoy evol I

    Calendar

    DateFormat 是 java.text 包中的一个类。与 Date 类有所不同的是,DateFormat 类可以接受用各种语言和不同习惯表示的日期字符串。

    但是 Calendar 类是一个抽象类,它完成 Date 类与普通日期表示法之间的转换,而我们更多的是使用 Calendar 类的子类 GregorianCalendar 类。它实现了世界上普遍使用的公历系统。当然我们也可以继承 Calendar 类,然后自己定义实现日历方法。

    import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class CalendarDemo { public static void main(String[] args) { System.out.println("完整显示日期和时间:"); DateFormat fdate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str=fdate.format(new Date()); System.out.println(str); Calendar calendar=Calendar.getInstance(); calendar.setTime(new Date()); System.out.println("年:"+calendar.get(Calendar.YEAR)); System.out.println("月:"+calendar.get(Calendar.MONTH)); System.out.println("分钟:"+calendar.get(Calendar.MINUTE)); System.out.println("今年的第 "+calendar.get(Calendar.DAY_OF_MONTH)+"天"); calendar.add(Calendar.HOUR_OF_DAY, 3); System.out.println("三个小时以后的时间:"+calendar.getTime()); str=(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime())); System.out.println(str); // 创建一个 Calendar 用于比较时间 Calendar calendarNew = Calendar.getInstance(); // 设定为 5 小时以前,后者大,显示 -1 calendarNew.add(Calendar.HOUR, -5); System.out.println("时间比较:" + calendarNew.compareTo(calendar)); // 设定7小时以后,前者大,显示 1 calendarNew.add(Calendar.HOUR, +7); System.out.println("时间比较:" + calendarNew.compareTo(calendar)); // 退回 2 小时,时间相同,显示0 calendarNew.add(Calendar.HOUR, -2); System.out.println("时间比较:" + calendarNew.compareTo(calendar)); // calendarNew创建时间点 System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendarNew.getTime())); // calendar创建时间点 System.out.println((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime())); System.out.println("时间比较:" + calendarNew.compareTo(calendar)); } } 完整显示日期和时间: 2020-10-09 13:27:22 年:2020 月:9 分钟:27 今年的第 9天 三个小时以后的时间:Fri Oct 09 16:27:22 CST 2020 2020-10-09 16:27:22 时间比较:-1 时间比较:-1 时间比较:-1 2020-10-09 13:27:22:184 2020-10-09 16:27:22:180 时间比较:-1
    Processed: 0.014, SQL: 8