剑指offer--(4)把数组排成最小的数--Java描述

本文介绍了一个Java程序,该程序通过自定义Comparator接口实现了对整数数组的特殊排序,目标是最小化数字拼接后的整体数值。文章还回顾了Comparator接口、Arrays类的sort方法及String类的valueOf方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面:

    这到问题,本身解决起来,比较容易,但是由这道题,我们可以重温一下java基础中,Comparator接口,Arrays类以及String类的一些方法。

    我们先来看一下代码实现:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
public class Solution {
    public String PrintMinNumber(int [] numbers) {
        if(numbers==null||numbers.length==0){
            return "";
        }
        StringBuilder sb=new StringBuilder();
        int len=numbers.length;
        String []arr=new String[len];
        //将数据存入String数组
        for(int i=0;i<len;i++){
            arr[i]=String.valueOf(numbers[i]);
        }
        //比较
        Arrays.sort(arr,new Comparator<String>(){
            //重写比较方法
            @Override
            public int compare(String s1,String s2){
                String c1=s1+s2;
                String c2=s2+s1;
                return c1.compareTo(c2);
            }
        });
        for(int i=0;i<len;i++){
            sb.append(arr[i]);
        }
        return sb.toString();
    }
}

相关Java基础回顾

(1)Arrays类

Arrays.sort()是Arrays类提供的一种排序方法,他可以有几种排序方式

1.默认排序,按字典ASCII顺序排序

2.使用提供好的方式:

eg:Arrays.sort( str,Collections.reverseOrder() )

3.自定义排序方法

自定义排序需要实现Java.util.comparator中的compare方法。

eg:

Arrays.sort(arr,new Comparator<String>(){
            //重写比较方法
            @Override
            public int compare(String s1,String s2){
                String c1=s1+s2;
                String c2=s2+s1;
                return c1.compareTo(c2);
            }
        });

(2)String类

String.valueOf(Object obj)

这个方法的意义在于,将一个Object对象转换为一个字符串,方便我们的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值