Java之Arrays类

常用方法

1.Arrays.toString(数组)

返回数组的字符串形式在这里插入图片描述

2.sort()

分为默认排序和定制排序

默认排序

这个方法是直接操作原数组,因为数组是引用类型是直接操作实参的,没有返回值
从小到大
在这里插入图片描述

定制排序

可以通过传入一个接口Comparator实现定制排序
这个sort两个参数
sort(arr(数组),Comparator(Comparator的实现类))
具体的如何排序是要看Comparator如何实现(主要是return的值是大于0还是小于0)在这里插入图片描述
只要是第一个对象o1的值减去第二个对象o2的值
排序就是从小到大
只要是第二个对象o2的值减去第一个对象o1的值
排序就是从大到小
其实只要看return

看两个例子

package enumeration;
 
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
 
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
 
public class e {
    public static void main(String[] args) {
      Book[] book = new Book[4];
      book[0] = new Book("红楼梦",100);
      book[1] = new Book("金瓶梅新",90);
      book[2] = new Book("青年文摘20年",5);
      book[3] = new Book("java从入门到放弃",300);
      Arrays.sort(book, new Comparator() {
          @Override
          public int compare(Object o1, Object o2) {
              Book book1 = (Book)o1;
              Book book2 = (Book)o2;
 
              double priceval = book1.getPrice() - book2.getPrice();
              if (priceval > 0){
                  return 1;
              }else if(priceval < 0){
                  return -1;
              }else{
                 return 0;
              }
          }
 
 
 
      });
        System.out.println("排序后的数组" + Arrays.toString(book) );
    }
}
 
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;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public double getPrice() {
        return price;
    }
 
    public void setPrice(double price) {
        this.price = price;
    }
 
    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}
package enumeration;
 
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
 
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
 
public class e {
    public static void main(String[] args) {
      Book[] book = new Book[4];
      book[0] = new Book("红楼梦",100);
      book[1] = new Book("金瓶梅新",90);
      book[2] = new Book("青年文摘20年",5);
      book[3] = new Book("java从入门到放弃",300);
      Arrays.sort(book, new Comparator() {
          @Override
          public int compare(Object o1, Object o2) {
              Book book1 = (Book)o1;
              Book book2 = (Book)o2;
 
              return book2.getName().length() -book1.getName().length();
          }
 
 
 
      });
        System.out.println("排序后的数组" + Arrays.toString(book) );
    }
}
 
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;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public double getPrice() {
        return price;
    }
 
    public void setPrice(double price) {
        this.price = price;
    }
 
    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", price=" + price +
                '}';
    }
}

3.biarySearch()

通过二分查找发来查找你想要的元素
传入两个参数
一个排序好的数组,一个你想要的元素
数组一定要排序好
返回对应的索引
如果不存在查找的元素返回-(应该存在的位置+1)

在这里插入图片描述
92存在的话,对于有序数组,应该在索引3的位置
不过现在他不存在所以返回
-(3+1)=-4

下面的方法用截图表示
在这里插入图片描述
4.从arr数组拷贝arr.length个元素到newArr里,超过的话会保留默认值

5.用99填充num数组,可以理解为用99替换num[]里面的所有元素

6.老常客

7.涉及后面的集合,先放一张图

在这里插入图片描述

length

a.length()
返回值是a数组的元素个数

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小袁拒绝摆烂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值