Java基础-Comparetor比较器之String数组

原创 2018年04月17日 19:50:54
(#)已知数组 String strsort[10],取值分别为:“1”、“3”、“2”、“1-1”、“1-2”、“4”、
“3-1”、“1-1-1”、“3-1-1”、“1-2-1-1”.
请编写一段代码:
1) 实现数组 strsort[10]按如下所示排序:
1、1-1、1-1-1、1-2、1-2-1-1、2、3、3-1、3-1-1、4
2)实现数组按如下所示排序

1、2、3、4、1-1、1-2、3-1、1-1-1、3-1-1、1-2-1-1


--1:直接使用Arrays.sort()排序,按字典排序

                String[] s = new String[]{"1","3","2","1-1","1-2","4","3-1","1-1-1","3-1-1","1-2-1-1"};

Arrays.sort(s);
for(int i = 0; i < s.length; i++){
System.out.print(s[i] + "  ");
}

打印结果为:



--2:使用java比较器Comparetor(外部比较器)

先比较长度,再比较大小

public class SortString implements Comparator<String>{


@Override
public int compare(String o1, String o2) {
//两个String 每个String表示数组中的元素  
// 1: 由低到高      -1:由高到低
String[] s1 = o1.split("-");
String[] s2 = o2.split("-");
if(s1.length == 1 && s2.length ==1){
if(s1[0].compareTo(s2[0]) > 0){ // s1[0]>s2[0]
return 1;
}else if(s1[0].compareTo(s2[0]) < 0){// s1[0]<s2[0]
return -1;
}
}else if(s1.length < s2.length){
return -1;
}else if(s1.length > s2.length){
return 1;
}
return 0;
}
}

然后调用:Arrays.sort(str,new SortString());// str为原数组

                   System.out.println(Arrays.toString(s));

打印结果:


两个时间比较只精确到天

import java.util.Calendar; import org.apache.commons.lang3.time.DateUtils; //当前时间处于活动时间之内 if(DateUt...
  • Nightliar
  • Nightliar
  • 2017-05-17 17:50:10
  • 612

Java日期格式转换

现在项目中服务端返回的日期都需要转换成不同的显示风格,这里就写个日期转换工具类。具体代码如下: import org.apache.commons.lang3.StringUtils; import ...
  • lx_yoyo
  • lx_yoyo
  • 2017-05-19 10:46:35
  • 304

java里String类的比大小compareTo方法实现分析

代码实例:System.out.println(new String(&quot;ab&quot;).compareTo(new String(&quot;kld&quot;)));java如何对字符...
  • jly8866
  • jly8866
  • 2018-04-19 16:26:40
  • 1

DateUtils @ lang

MILLIS_PER_SECOND MILLIS_PER_MINUTE MILLIS_PER_HOUR MILLIS_PER_DAY (略) isSameDay public ...
  • golo975
  • golo975
  • 2014-06-20 18:42:15
  • 2110

日期处理类 org.apache.commons.lang3.time.DateUtils

org.apache.commons.lang3.time之DateUtils   commons-lang3-3.3.2     /**      * 以秒为标准时间的毫...
  • yihaoawang
  • yihaoawang
  • 2016-02-05 15:20:41
  • 8612

java中TreeSet的Comparator比较器的三种使用方法

java中treeset使用Comparator进行比较的三种方法1.让元素具备比较性。 比如我们比较两个人。我们定义一个person类,并且实现Comparable接口 例: pu...
  • zqr772791008
  • zqr772791008
  • 2016-04-06 15:49:00
  • 3274

java中的Comparator和Comparable比较器的用法

Comparable和Comparator都是用来实现集合中的排序的,Comparator位于包java.util下,而Comparable位于包java.lang下,Comparable接口将比较代...
  • happylifex
  • happylifex
  • 2015-03-27 16:14:47
  • 7310

DateUtils学习笔记

package com.study.commons; import java.util.Calendar; import java.util.Date; import org.apach...
  • qq844579582
  • qq844579582
  • 2016-08-24 13:21:30
  • 558

Apache Commons Lang3 DateUtils用法

org.apache.commons.lang3.time之DateUtils,commons-lang3-3.3.2
  • softwave
  • softwave
  • 2017-07-22 23:57:33
  • 739
收藏助手
不良信息举报
您举报文章:Java基础-Comparetor比较器之String数组
举报原因:
原因补充:

(最多只允许输入30个字)