java - 按降序对字符串的 ArrayList 进行排序

标签 java sorting

Possible Duplicate:
Sort ArrayList of custom Objects by property

我有一个字符串数组列表,其中包含以下字符串

Common Ruby Errors 45min
Rails for Python Developers lightning
Communicating Over Distance 60min
Accounting-Driven Development 45min
Woah 30min
Sit Down and Write 30min

现在我想根据每个字符串中提到的数字按降序对数组列表进行排序

即排序列表应该看起来像

Communicating Over Distance 60min
Common Ruby Errors 45min
Accounting-Driven Development 45min
Woah 30min
Sit Down and Write 30min
Rails for Python Developers lightning

谁能告诉我该怎么做?

最佳答案

正如 @Rohit 所建议的,你的任务是双重的

  • 弄清楚如何提取您想要排序的属性(数字)
  • 编写一个使用上述方法的 Comparator 并执行 sortedList = Collections.sort( list , new YourComparator() )

这样的事情可能是可行的:

    Comparator c = new Comparator<String>()
    {
        @Override
        public int compare( String o1, String o2 )
        {
            return getNumber( o1 ).compareTo( getNumber( o2 ) );
        }

        private Integer getNumber( String str ) 
        {
            Pattern pattern = Pattern.compile("([0-9]+)");
            Matcher matcher = pattern.matcher(str);
            while ( matcher.find() ) { return Integer.parseInt( matcher.group( 1 ) ); }

            return 0;
        }
    }

干杯,

关于java - 按降序对字符串的 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12814049/

相关文章:

java - 你怎么能得到JSON路径?

java - 尝试制作一个动态加载的java程序

PHP如果一个变量有重复只显示第一个实例?

python - 唯一的从到组合,在可变循环中它之后的所有持续时间

java - 使用 Spring 数据调用自定义 mongoDB 查询失败

java - JDK 11 与 JDK 13 的性能

java - 通过 HashSet 与链接哈希集进行迭代

c - C 中的冒泡排序显示段错误

c - main函数内外 '&arrayname + n'的不同输出

C排序改变数组中的值