java学习(含Arrays、StringBuilder、Calendar)

数组

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值