1 包装类
简单的以 Integer
类为例,其余的包装类的常用方法都差不多就是这些,需要的时候可以再到官网API文档中查询。
1.1 Integer
类
实例 常用方法:
doubleValue()
:转换为double
类型shortValue()
:转换为short
类型intValue()
:转换为int
类型longValue()
:转换为long
类型toString()
:转为String
类型
静态 常用方法:
int Integer.parseInt(String str)
:字符串转换为int
类型int Integer.toString(int i)
:int
类型转换为字符串Integer Integer.valueOf(int i)
:int
类型转换为Integer
Integer Integer.valueOf(String str)
:String
类型转换为Integer
2 字符串
2.1 String
类
常用的构造函数:
String(char[] value)
String(char[] value, int offset, int count)
String(StringBuilder builder)
实例 常用方法:
format(String format, Object... args)
:格式化字符串,这里有 String.format()用法contains(CharSequence s)
:是否包含某些字符indexOf(String str)
:返回索引lastIndexOf(String str)
indexOf(String str, int fromIndex)
:返回索引lastIndexOf(String str, int fromIndex)
isEmpty()
:是否为空length()
:返回长度matches(String regex)
:正则表达式匹配replace(CharSequence target, CharSequence replacement)
:匹配的,全部替代掉replaceAll(String regex, String replacement)
:正则表达式匹配的,全部替代掉replaceFirst(String regex, String replacement)
:只替代第一个匹配的String[] split(String regex)
:根据正则表达式分割成字符串数组substring(int beginIndex)
:根据字符串索引返回字符串substring(int beginIndex, int endIndex)
toCharArray()
trim()
:清除左右的空格符
静态 常用方法:
String String.join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
:使用某个字符串将一系列字符连接起来String String.valueOf(boolean b)
:布尔值转换为字符串,同理还有其余的基本数据类型
2.1 StringBuilder
实例 常用方法:
append(CharSequence s)
:在结尾处添加字符,含有一些重载该方法,自行查看apiStringBuilder delete(int start, int end)
:删除某些字符indexOf(String str)
:返回索引indexOf(String str, int fromIndex)
insert(int dstOffset, CharSequence s)
:插入字符串length()
:返回长度replace(int start, int end, String str)
:替代字符串String substring(int start)
:返回索引范围中的字符串String
类型String substring(int start, int end)
:返回索引范围中的String
类型
3 集合
一个 Java 对象可以在内部持有其它若干个Java对象,并对外提供访问接口,我们称这个 Java 对象为集合,Java 的数组可以看做一个集合,然而数组初始化后大小不可变,同时它按索引顺序存取,不灵活。
JDK自带的 java.util
包提供了常用的集合类:
- 实现
Collection
接口的:- 实现
List
接口的,一种有序列表,主要有ArrayList
- 实现
Set
接口的,一种保证没有重复对象的集合,主要有HashSet
- 实现
- 实现
Map
接口的,一种通过Key
查找Value
的映射表集合,主要有HashMap
3.1 ArrayList
常用构造函数:
ArrayList(Collection<? extends E> c)
实例 常用方法:
add(E e)
:结尾添加元素add(int index, E element)
:特定位置添加元素addAll(Collection<? extends E> c)
:结尾添加集合addAll(int index, Collection<? extends E> c)
:特定位置添加集合clear()
:清空clone()
:复制contains(Object o)
:是否包含某元素forEach(Consumer<? super E> action)
:循环get(int index)
:根据索引获取数值indexOf(Object o)
:根据数值获取索引isEmpty()
:判断是否为空iterator()
:获取iterator
迭代器remove(int index)
:删除某个元素removeRange(int fromIndex, int toIndex)
:删除某些元素set(int index, E element)
:重置某些元素size()
:获取长度sort(Comparator<? super E> c)
:排序subList(int fromIndex, int toIndex)
:获取子集合toArray(T[] a)
:转化为数组
3.2 HashMap
常用构造函数:
HashMap(Map<? extends K,? extends V> m)
实例 常用方法:
clear()
:清空clone()
:复制containsKey(Object key)
:是否包含某个key
值containsValue(Object value)
:是否包含某个value
值Set<Map.Entry<K,V>> entrySet()
:获取entry
对象的set
集合forEach(BiConsumer<? super K,? super V> action)
:循环get(Object key)
:根据key
值获取数据getOrDefault(Object key, V defaultValue)
:根据key
值获取数据,若没有key
值返回默认值isEmpty()
:是否为空put(K key, V value)
:添加对象remove(Object key)
:移除对象replace(K key, V value)
:重置对象size()
:返回大小
4 时间
JDK 有两套操作事件的 API,分别定义在下面两个包里:
java.util
:主要包括Date
类和Calendar
类java.time
(JDK>=1.8)
4.1 Date
Date
实例获取时间戳是使用 getTime
方法
Date
实例转换为字符串,初始化 SimpleDateFormat
实例,声明输出字符串格式:
Date date = new Date();
System.out.println("获取当前时间戳:" + date.getTime());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 年-月-日 时-分-秒
System.out.println("格式化输出日期:" + simpleDateFormat.format(date));
字符串转换为 Date
实例:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(simpleDateFormat.parse("2018-11-11").getDate());
4.2 Calendar
Calendar
是一个抽象类,他通过静态方法 getInstance
获取子类实例,如:
Calendar rightNow = Calendar.getInstance();
Calendar
类的常用方法都是直接修改源 Calendar
对象,而非返回一个新的 Calendar
对象:
void setTime(Date date)
:Date
转换为Calendar
void set(int field, int value)
:自定义日期,其中field
是Calendar
字段,amout
是时间量,下同void set(int year, int month, int date)
:自定义日期void clear()
:清除此前变量定义过的日期信息abstract void add(int field, int amount)
:添加或减去指定的时间量int getActualMaximum(int field)
:获取Calendar
实例给定日历字段的最大值,如该年的总天数,该月份的总天数等Date getTime()
:返回Date
对象long getTimeInMillis()
:返回时间戳boolean after(Calendar day1)
:返回日期是否在day1
之后boolean before(Calendar day1)
:返回日期是否在day1
之前
eg:
// 初始化 Calendar,默认当前日期
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
int weekday = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 英语国家的星期从星期天开始,即数字1表示星期天
System.out.println(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second + " " + weekday);
// Date 转化 Calendar
calendar.clear(); // 清除此前变量定义过的日期信息
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
calendar.setTime(simpleDateFormat.parse("2018-11-11"));
System.out.println(calendar.get(Calendar.MONTH) + 1);
// 自定义日期 Calendar
calendar.clear(); // 清除此前变量定义过的日期信息
calendar.set(Calendar.YEAR, 2018);
calendar.set(Calendar.MONTH, 7); // 这里输入 0 表示 1月
calendar.set(Calendar.DATE, 21);
System.out.println(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH)+1) + "-" + calendar.get(Calendar.DAY_OF_MONTH));
// Calendar 转化为 Date
Date date = calendar.getTime();
System.out.println(simpleDateFormat.format(date)); // 2018-08-21
System.out.println(date.getTime()); // 时间戳
System.out.println(calendar.getTimeInMillis()); // 时间戳
// 获取年份,月份的天数信息
System.out.println("2018的天数:" + calendar.getActualMaximum(Calendar.DAY_OF_YEAR));
System.out.println("2018-8月的天数:" + calendar.getActualMaximum(Calendar.DATE));
// add 方法为某日期增加时间段
System.out.println("2018-8-21 增加十天后");
calendar.add(Calendar.DAY_OF_MONTH, 20);
System.out.println(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH)+1) + "-" + calendar.get(Calendar.DAY_OF_MONTH));