发新话题

Hash的排序问题,按照字符串的长度

   调用 HashSet list=new HashSet();

list里面有
[A, AB, ABC, ABCD, ABCE, ABD, ABDE, ABE, AC, ACD, ACDE, ACE, AD, ADE, AE, B, BC, BCD, BCDE, BCE, BD, BDE, BE, C, CD, CDE, CE, D, DE, E]


想按字符串的长短排序

A:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test {
  public static void main(String[] args) {
    String[] a = { "A", "AB", "ABC", "ABCD", "ABCE", "ABD", "ABDE", "ABE", "AC", "ACD", "ACDE", "ACE", "AD", "ADE", "AE", "B",
        "BC", "BCD", "BCDE", "BCE", "BD", "BDE", "BE", "C", "CD", "CDE", "CE", "D", "DE", "E" };
    List<String> list = new ArrayList<String>();
    for (int i = 0; i < a.length; i++) {
      list.add(a[i]);
    }
    Collections.sort(list, new Comparator<String>() {
      public int compare(String o1, String o2) {
        if (o1 == null) {
          return -1;
        }
        if (o2 == null) {
          return 1;
        }
        return (o1.length() - o2.length());
      }
    });
    System.out.println(list);
  }
}
输出
[A, B, C, D, E, AB, AC, AD, AE, BC, BD, BE, CD, CE, DE, ABC, ABD, ABE, ACD, ACE, ADE, BCD, BCE, BDE, CDE, ABCD, ABCE, ABDE, ACDE, BCDE]
快乐渡过每一天,减肥坚持每一天



编辑 回复 快速回复 TOP
Comparator是个排序好帮手
================================================
            蓝================法================典
================================================
编辑 回复 快速回复 TOP
顶,尤其在对复杂的数据排序的时候
编辑 回复 快速回复 TOP
发新话题