本学习内容来着b站:黑马程序员
注:废话少说,坚持坚持再坚持,加油!结尾:本内容,当做笔记的复习材料,如果你看到了这篇文章能对你有所帮助,给我点个赞或者评论也是对我更新的最大动力!感谢,内容如果有错误,欢迎各位兄弟姐妹批评指正!!!
一. 日期与时间
二. 包装类
三. 正则表达式
四. Arrays类
代码实现:
package com.xiaochen.d7_arrays;
import java.util.Arrays;
public class ArrayDemo1 {
public static void main(String[] args) {
//目标:学会使用Array类的常用API 并理解其原理
int[] arr = {10,2,33,32,199};
System.out.println(arr);
//1、返回数组内容的toString
// String rs = Arrays.toString(arr);
// System.out.println(rs);
System.out.println(Arrays.toString(arr));
//2、排序的API(默认自动对数组元素进行升序排序)
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
//3、二分搜索技术(前提数组必须排好序才支持,否则出bug)
int index = Arrays.binarySearch(arr,33);
System.out.println(index);
// 返回不存在元素的规律: —(应该插入的位置索引+1)
int index1 = Arrays.binarySearch(arr,333);
System.out.println(index1);
//注意:数组如果有排好序,可能会找不到存在的元素,从而出现bug
int[] arr2 ={23,432,522,11,2,5};
System.out.println(Arrays.binarySearch(arr,11));
}
}
//运行的结果
// [I@1b6d3586
// [10, 2, 33, 32, 199]
// [2, 10, 32, 33, 199]
// 3
// -6
// -3
代码实现:student类
package com.xiaochen.d7_arrays;
public class Studnet {
private String name;
private int age;
private double height;
public Studnet() {
}
public Studnet(String name, int age, double height) {
this.name = name;
this.age = age;
this.height = height;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
@Override
public String toString() {
return "Studnet{" +
"name='" + name + '\'' +
", age=" + age +
", height=" + height +
'}';
}
}
代码实现:
package com.xiaochen.d7_arrays;
import java.util.Arrays;
import java.util.Comparator;
public class ArrayDemo2 {
public static void main(String[] args) {
//目标:自定义数组的排序规则,Comparator 比较器对象
//1、对象Array的sort方法对于有值特性的数是默认升序排序的
int[] ages ={34,12,43,23};
Arrays.sort(ages);
System.out.println(Arrays.toString(ages));
//2、需求:降序排序(自定义比较器对象,只能支持引用类型的排序)
Integer[] ages1 ={34,12,43,23};
/*
参数一:被排序的数组 引用类型的元素
参数二:匿名内部类对象,代表了一个比较器对象
*/
Arrays.sort(ages1, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
//指定比较规则
// if(o1 > o2){
// return 1;
// }else if (o1 < o2){
// return -1;
// }
// return 0;
// return o1 - o2;//默认升序
return o2 - o1;//默认降序
}
});
System.out.println(Arrays.toString(ages1));
System.out.println("==========================");
Studnet[] students = new Studnet[3];
students[0] =new Studnet("小陈",33,178);
students[1] =new Studnet("小哥",23,182);
students[2] =new Studnet("小美",55,167);
System.out.println(Arrays.toString(students));
//Arrays.sort(students);//直接运行奔溃
Arrays.sort(students, new Comparator<Studnet>() {
@Override
public int compare(Studnet o1, Studnet o2) {
//自己指定比较规则
// return o1.getAge() - o2.getAge();//按照年龄升序排序
// return o2.getAge() - o1.getAge();//按照年龄降序排序
// return Double.compare(o1.getHeight(), o2.getHeight());//比较浮点型可以这样写 升序排
return Double.compare(o2.getHeight(), o1.getHeight());//比较浮点型可以这样写 降序排的
}
});
System.out.println(Arrays.toString(students));
}
}
//运行的结果
// [12, 23, 34, 43]
// [43, 34, 23, 12]
// ==========================
// [Studnet{name='小陈', age=33, height=178.0}, Studnet{name='小哥', age=23, height=182.0}, Studnet{name='小美', age=55, height=167.0}]
// [Studnet{name='小哥', age=23, height=182.0}, Studnet{name='小陈', age=33, height=178.0}, Studnet{name='小美', age=55, height=167.0}]