Arrays包可以进行数组排序,也可以把数组变成字符串输出
Arrays.toString()将数组变为字符串输出
2种排序(从大到小,从小到大)
//从大到小排序 Arrays.sort(arr, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2 - o1; } }); System.out.println(Arrays.toString(arr));
通过new 一个 Comparator的匿名内部类实现排序
o2-o1 (从大到小)
o1-o2(从小到大)
注意:要将数据类型打包成包装类才能使用Arrays
比如int打包成Integr等,因为包装类可以在对象内使用
注意:在数据类型一样时,可以使用这个 //查找数组下标,key表示要查找的数 //注意:要先排序好后查找 int index = Arrays.binarySearch(arr,5); System.out.println(index); //通过数组下标来获得数组数据 //System.out.println(arr[index]);
使用案例
/**
* 定义Book类,里面包含name和price,按price排序(从大到小,从小到大)
* 有一个Book[] books = 5本书对象
*/
public class test {
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("水浒传",300,"不错");
Arrays.sort(books, new Comparator<Book>() {
//o1,o2是book对象
//比较o1和o2,然后排序
@Override
public int compare(Book o1, Book o2) {
return o2.getPrice() - o1.getPrice();
//o2-o1是从大到小
//o1-o2是从小到大
}
});
for (Book a : books){
System.out.println(a + "");
}
查找
//通过价格查询书籍
System.out.println("请输入你要查询价格的书");
Scanner scanner = new Scanner(System.in);
int n = 0;
n = scanner.nextInt();
int t = 0;
for (int i = 0;i < books.length;i++){
if (books[i].price == n){
t = i;
}
}
System.out.println("信息:" + books[t]);