大拙男
2020-04-13 15:49
采纳率: 100%
浏览 172

Java语言程序设计怎么将字符串的列表按照它们的长度排序呢

Java语言程序设计怎么将字符串的列表按照它们的长度排序呢
Java语言程序设计怎么将字符串的列表按照它们的长度排序呢
Java语言程序设计怎么将字符串的列表按照它们的长度排序呢

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 徐卡丘 2020-04-13 15:51
    已采纳

    import java.util.*;
    class TreeSetTest
    {
    public static void main(String[] args)
    {
    TreeSet ts = new TreeSet(new MyStringLength());
    ts.add("abcde");
    ts.add("ab");
    ts.add("abc");
    ts.add("a");
    ts.add("abcd");
    ts.add("1");

        Iterator it = ts.iterator();
        while(it.hasNext())
        {
            System.out.println(it.next());
        }
    }
    

    }

    class MyStringLength implements Comparator
    {
    //重写 compare 方法
    public int compare(Object obj1,Object obj2)
    {
    String str1 = (String)obj1;
    String str2 = (String)obj2;
    /*
    return str1.length() - str2.length();
    如果这样直接返回长度的值,这样会把相同长度的数据简略掉。
    */
    int num = str1.length() - str2.length();
    if(num==0)
    {
    return str1.compareTo(str2); //如果长度相同比较大小。
    }
    return num;
    }
    }

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • shy078 2020-04-13 16:04

    这是基于JDK1.8,望采纳。

    public class StringLengthCompare {
    
        public static void stringLengthCompareDesc(List<String>stringList){
            Collections.sort(stringList, Comparator.comparingInt(String::length).reversed());
        }
        public static void stringLengthCompareAsc(List<String>stringList){
            Collections.sort(stringList, Comparator.comparingInt(String::length));
        }
    
        public static void main(String[] args) {
            List<String> strings = new ArrayList<>(Arrays.asList("2345","1","123"));
            System.out.println("升序:");
            stringLengthCompareAsc(strings);
            strings.forEach(System.out::println);
            System.out.println("降序:");
            stringLengthCompareDesc(strings);
            strings.forEach(System.out::println);
        }
    }
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题