章13——包装类——Arrays类
1.章10——面向对象编程(高级部分)——类名类方法2.章10——面向对象编程(高级部分)——main方法3.章10——面向对象编程(高级部分)——代码块4.章10——面向对象编程(高级部分)——两种单例模式5.章10——面向对象编程(高级部分)——final关键字6.章10——面向对象编程(高级部分)——抽象类7.章10——面向对象编程(高级部分)——内部类8.章12——异常exception9.章13——常用类——包装类,Integer类10.章13——常用类——String类11.章13——常用类——StringBuffer类12.章13——包装类——StringBuilder类13.章13——包装类——Math类
14.章13——包装类——Arrays类
15.章13——包装类——System类16.章14——集合——集合体系17.章14——集合——Collection 接口18.章14——Hashtable19.章15——泛型generic20.章16——坦克大战1——绘图、事务1、包含了一系列静态方法,用于管理或操作数组(如排序、搜素)
因为是引用类型,sort方法后会直接印象到原数据。
import java.util.Arrays;
import java.util.Comparator;
public class Math {
public static void main(String[] args) {
Integer arr[] = {1,2,3,2,1};
Arrays.sort(arr, new Comparator(){
@Override
public int compare(Object o1, Object o2) {
Integer i1 = (Integer) o1;
Integer i2 = (Integer) o2;
//从小到大,反之从大到小
return i1 - i2;
}
});
}
}
compare return 的数字大于0还是小于0会直接影响排序是从大到小还是从小到大。
下列函数用于理解:
public class ArraysSortCustom {
public static void main(String[] args) {
int[] arr = {1,4,2,55,3,6,8,3,74,6,3,6};
bubble01(arr, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
int i1 = (Integer) o1;
int i2 = (Integer) o2;
return i1 - i2;//相当于 aj > aj+1 时才会交换。
}
});
}
public static void bubble01(int[] arr, Comparator c){
int temp = 0;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if(c.compare(arr[j],arr[j+1]) > 0){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}
有序数组的查找:
int index = Arrays.binarySearch(arr,123);
如果找不到返回
return -(low + 1);
//本应该在的位置 +1,再取负数。
aslist.getClass() 获得运行类型
课堂练习:给书按照价格大小排序,并打印
import java.util.Arrays;
import java.util.Comparator;
public class ArrayExercise {
public static void main(String[] args) {
Book[] books = new Book[4];
books[0] = new Book("红楼梦",100);
books[1] = new Book("金*瓶.梅",90);
books[2] = new Book("青年文摘",5);
books[3] = new Book("java从入门到放弃",300);
Arrays.sort(books, new Comparator<Book>() {
@Override
public int compare(Book o1, Book o2) {
double res =o2.getPrice() - o1.getPrice();
if(res > 0){
return 1;
}else if(res < 0){
return -1;
}else {
return 0;
}
}
});
System.out.println(Arrays.toString(books));
}
}
class Book{
private String name;
private double price;
public Book(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
@Override
public String toString() {
return name + " " + price + " ";
}
}
System.out.println(Arrays.toString(books));
以上可以打印数组,内容里的books数组的类需要重写
toString 方法。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!