Arrays.sort()的排序(基本排序和定制排序)

1、基本排序:按照数组的从小到大进行排序。


import java.util.Arrays;

public class ex {
    public static void main(String[] args) {
        int[] arr = {0,4,2,3,8};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

    2、定制排序--------因为sort是重载的,也可以传入一个接口,来进行定制排序。

 按照价格排序:

            

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 +
                '}';
    }
}

按照名字的长度:只需要改变放回的值就行,注意返回的值是int类型。(排序的那个类要重写toString方法,这样再次调用Arrays.toStriing(arr)方法)

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 +
                '}';
    }
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值