Arrays包(排序,查找)

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]);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值