字符串相关
String
构造方法 | 说明 |
---|
public String() | 创建空白字符串,不含任何内容 |
public String(String original) | 根据传入的字符串,创建字符串对象 |
public String(char[] chs) | 根据字符数组,创建字符串对象 |
public String(byte[] chs) | 根据字节数组,创建字符串对象 |
字符串比较
boolean equals方法(要比较的字符串) 完全一样才是true,否则为false
boolean equalslgnoreCase(要比较的字符串) 忽略大小写的比较
StringBuilder
因为StrIngBuilder是ava已经写好的类,java在底层对他做了一些特殊处理。
打印对象不是地址值而是属性值。
构造方法名 | 说明 |
---|
public StringBuilder() | 创建一个空白可变字符串对象,不含有任何内容 |
public StringBuilder(String str) | 根据字符串内容,来创建可变字符串对象 |
StringBuilder sb=new StringBuilder(“123”)
常用方法 | 说明 |
---|
public StringBulider append(任意类型) | 添加数据,并返回对象本身 |
public StringBuilder reverse() | 反转容器内容 |
public int length() | 返回长度(字符出现的个数) |
public String toString() | 通过toString()就可以实现把StringBuilder转换为String |
可以使用链式编程:(如下)
sb.append(“123”).addpend(“456”).append(“789”)
StringJoiner
构造方法名 | 说明 |
---|
public StringJoiner(间隔符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号 |
public StringJoiner(间隔符号,开始符号,结束符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号、开始符号、结束符号 |
StringJoiner sj=new StringJoiner(“,”,“[”,“]”) //参数一,中间间隔符号,参数二:开始符号,参数三:结尾符号
成员方法 | 说明 |
---|
public StringJoiner add(添加的内容) | 添加数据,并返回对象本身 |
public int length() | 返回长度(字符出现的个数,包含拼接的长度和空格,这个计算的是最终的长度) |
public String toString() | 返回一个字符串(该字符串就是拼接之后的结果) |
可以使用链式编程:(如下)
StringJoiner sj=new StringJoiner(“—”)
sj.add(“123”).add(“456”).add(“789”)
System.out.println(sj) //123—456—789
对象相关
Object
成员方法名 | 说明 |
---|
public String toString() | 返回对象的字符串表示形式 |
public Boolean equals(Object obj) | 比较两个对象是否相等 |
public Object clone(int a) | 对象克隆 |
常用API
Calendar(日历对象)
常用方法名 | 说明 |
---|
public final Date getTime() | 获取日期对象 |
public final setTime(Date date) | 给日历设置日期对象 |
public long getTimeInMillis() | 得到时间毫秒值 |
public void setTimeInMillis(long millis) | 给日历设置时间毫秒值 |
public int get(int field) | 取日历中某个字段信息 |
public void set(int field , int value) | 修改日历的某个字段信息 |
public void add(int field , int amount) | 为某个字段增加/减少指定的值 |
Calendar c = Calendar.getInstance()
Date d = new Date()
c.setTime(d)
System.out.println(c)
细:1: Calendar是一个抽象类,不能直接new,而是通过一个静态方法获取到子类对象
底层原理:
会根据系统的不同时区来获取不同的日历对象,默认表示当前时间。
把会把时间中的纪元,年,月,日,时,分,秒,星期,等等的都放到一个数组当中细节2:
月份:范围e~11如果获取出来的是e.那么实际上是1月。星期:在老外的眼里,星期日是一周中的第一天
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/151f92b4b9f1c1bfaaf376d5f6403fb2.png)
LocalDate、LocalTime、LocalDateTime(相关视频链接)
方法名 | 说明 |
---|
static XXX now() | 获取当前时间的对象 |
static XXX of(…) | 获取指定时间的对象 |
get 开头的方法 | 获取日历中的年月日时分秒等信息 |
isBefore , isAfter | 比较两个LocalDate |
with 开头的 | 修改时间系列的方法 |
minus 开头的 | 减少时间系列的方法 |
plus 开头的 | 增加时间系列的方法 |
Arrays(操作数组的工具类)
方法名 | 说明 |
---|
public static String toString(数组) | 把数组拼接成一个字符串 |
public static int binarySearch(数组,查找的元素) | 二分查找法查找元素 |
public static int[] copyOf(原数组,新数组长度) | 拷贝数组 |
public static int却copyOfRange(原数组,起始索引,结束索引) | 拷贝数组(指定范围) |
public static void fill(数组,元素) | 填充数组 |
public static void sort(数组) | 按照默认方式进行数组排序 |
public static void sort(数组,排序规则) | 按照指定的规则排序 |
最后一个排序的案例
public class demo01 {
public static void main(String[] args) {
Integer[] arr = {10,21,13,42,25,6,7,80};
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;
}
});
System.out.println(Arrays.toString(arr));
}
}
----------------------------------------
[6, 7, 10, 13, 21, 25, 42, 80]
Lambda表达式(函数式编程思想体现)
()->{}
lambda表达式 简化后结果
注意: Lambda表达式可以用来简化匿名内部类的书写
Lambda表达式只能简化函数式接口的匿名内部类的写法
函数式接口: 有且仅有一个抽象方法的接口叫做函数式接口,接口上方可以加@FunctionalInterface注解
lambda的省略规则:
1.参数类型可以省略不写。
2.如果只有一个参数,参数类型可以省略,同时()也可以省略T
3.如果Lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,需要同时省略。
public class demo01 {
public static void main(String[] args) {
Integer[] arr = {10,21,13,42,25,6,7,80};
Arrays.sort(arr, (Integer o1, Integer o2)-> {
return o1-o2;
}
);
System.out.println(Arrays.toString(arr));
}
}
----------------------------------------
[6, 7, 10, 13, 21, 25, 42, 80]
集合相关
Collection
Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的
方法名称 | 说明 |
---|
public boolean add(E e) | 把给定对象添加到当前集合中 |
public void clear() | 清空集合中的元素 |
public boolean remove() | 把给定的对象在当前集合中删除 |
public boolean contains(object obj) | 判断当前集合中是否包含给定的对象 |
public boolean isEmpty() | 判断当前集合是否为空 |
public int size() | 返回集合中元素的个数/集合的长度 |
ArrayList
成员方法 | 说明 |
---|
boolean add(E e) | 添加元素,返回值表示是否添加成功 |
boolean remove(E e) | 删除指定元素,返回值表示是否删除成功 |
E remove(int index) | 删除指定索引的元素,返回被删除的元素 |
E set(int index,E e) | 修改指定索引下的元素,返回原来的元素 |
E get(int index) | 获取指定索引的元素 |
int size() | 集合的长度,也就是集合中元素的个数 |
ArrayList< 指定的引用数据类型 > list = new ArrayList< >()
list.add(添加的数据)
list.remove(删除的数据)
循环方法
迭代器
Collection<String> coll = new ArrayList<>();
coll.add("aaa");
coll.add("bbb");
coll.add("ccc");
coll.add("ddd");
coll.add("eee");
Iterator<String> it = coll.iterator();
while (it.hasNext()){
String str = it.next();
System.out.println(str);
}
Stream流相关
- 获取Stream流
获取方式 | 方法名 | 说明 |
---|
单列集合 | default Stream stream() | Collection中的默认方法 |
双列集合 | 无 | 无法直接使用stream流,需要通过keySet()或者entrySet()变成单列集合 |
数组 | public static Stream stream(T[ ] array) | Arrays工具类中的静态方法 |
一堆零散数据 | public static Stream of(T… values) | stream接口中的静态方法 |
- Stream流的中间方法
方法名称 | 说明 |
---|
Stream filter ( Predicate<? super T> predicate ) | 过滤 |
Stream filter ( Predicate<? super T> predicate ) | 获取前几个元素 |
Stream skip ( long n ) | 跳过前几个元素 |
Stream distinct ( ) | 元素去重,依赖(hashCode和equals方法) |
static Stream concat ( Stream a , Stream b ) | 合并a和b两个流为一个流 |
Stream map ( Function<T ,R> mapper ) | 转换流中的数据类型 |
- Stream流的终结方法
方法名称 | 说明 |
---|
void forEach ( Consumer action ) | 遍历 |
long count ( ) | 统计 |
toArray ( ) | 收集流中的数据,放到数组中 |
collect ( Collector collector ) | 收集流中的数据,放到集合中 |