数组
Arrays 类包含用于操作数组的各种方法(例如排序和搜索)。还包含一个静态工厂,允许将数组转为 List。
常用方法
方法 | 描述 |
---|---|
List asList(T… a) | 返回由指定数组构造的 List |
void 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) | 构造一个具有指定初始容量的 StringBuilder |
StringBuilder(String str) | 并将其内容初始化为指定的字符串内容 |
StringBuilder 类的常用方法:
方法 | 描述 |
---|---|
insert(int offsetm,Object obj) | 返回值类型为StringBuilder,在 offsetm 的位置插入字符串 obj |
append(Object obj) | 返回值类型为StringBuilder,在字符串末尾追加字符串 obj |
length() | 返回值类型为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