Java排序
针对单词进行排序,先按字母的长度排序,长者在前;
在长度相等的情况下,按字典降序排序。
例如,有单词序列“apple banana grape orange”,排序后输出结果应为“orange banana grape apple”。
方法一
package 字典排序comparable接口重写compareTo;
import java.util.TreeSet;
class Fruits implements Comparable{
String name;
int length;
public Fruits(String name,int length) {
this.name=name;
this.length=length;
}
public String toString() {
return name;
}
public int compareTo(Object obj) {
Fruits f = (Fruits) obj;
if(this.length-f.length<0) {
return 1;
}
if(this.length-f.length==0) {
if(this.name.compareTo(f.name)<0)
return 1;
}
return -1;
}
}
public class 字典排序 {
public static void main(String[] args) {
TreeSet set=new TreeSet();
String []A=new String[4];
A[0]="apple";
A[1]="orange";
A[2]="banana";
A[3]="grape";
//----------
set.add(new Fruits(A[0],A[0].length()));
set.add(new Fruits(A[1],A[1].length()));
set.add(new Fruits(A[2],A[2].length()));
set.add(new Fruits(A[3],A[3].length()));
//--------------
System.out.println(set);
}
}
方法二
package 字典排序comparator接口重写compare排序;
import java.util.*;
class MyComparator implements Comparator{
public int compare(Object obj1,Object obj2) {
String s1=(String) obj1;
String s2=(String) obj2;
if(s1.length()-s2.length()<0)
return 1;
if(s1.length()-s2.length()==0) {
if(s1.compareTo(s2)<0)
return 1;
}
return-1;
}
}
public class 字典排序_2 {
public static void main(String[] args) {
TreeSet set=new TreeSet(new MyComparator());
String []A=new String[4];
A[0]="apple";
A[1]="orange";
A[2]="banana";
A[3]="grape";
//----------
set.add(A[0]);
set.add(A[1]);
set.add(A[2]);
set.add(A[3]);
//--------------
//Collections.sort(set);
System.out.println(set);
}
}
方法三
package 字典排序Arraylist加revrese;
import java.util.*;
class SortByLength implements Comparator{
public int compare(Object obj1,Object obj2)
{
String s1=(String) obj1;
String s2=(String) obj2;
if(s1.length()-s2.length()>0)
return 1;
if(s1.length()-s2.length()==0) {
if(s1.compareTo(s2)>0)
return 1;
}
return-1;
}
}
public class 字典排序_3 {
public static void main(String[] args) {
ArrayList set=new ArrayList();
String []A=new String[4];
A[0]="apple";
A[1]="orange";
A[2]="banana";
A[3]="grape";
//----------
set.add(A[0]);
set.add(A[1]);
set.add(A[2]);
set.add(A[3]);
//--------------
Collections.sort(set,new SortByLength());
Collections.reverse(set);
System.out.println(set);
}
}