min*_*ino 5 java sorting arraylist
我有一个名为account的ArrayList,其中包含字符串.我正在尝试编写一种方法来检查它们是否有序并根据它们是否有序而返回true或false.
你会怎么做?我已经尝试用for-loop检查初始字符但是它非常错误.我创建了一个新的ArrayList并将其设置为等于原始的,然后对它进行排序并进行比较,但由于它们包含相同的数据,因此它总是回归真实.
只是一个额外的快速问题,因为我正在为字符串执行此操作,您如何检查某些数字是否按升序/降序排列?是同一个校长吗?
谢谢!
fge*_*fge 12
试试这个(假设您想要使用它们的自然顺序来比较字符串):
String previous = ""; // empty string: guaranteed to be less than or equal to any other
for (final String current: thelist) {
if (current.compareTo(previous) < 0)
return false;
previous = current;
}
return true;
Run Code Online (Sandbox Code Playgroud)
这是因为String实现Comparable<String>,并且将使用字符串的自然顺序进行比较.
如果你不介意使用外部库(Guava)Ordering会这样做:
boolean isSorted = Ordering.natural().isOrdered(list);
Run Code Online (Sandbox Code Playgroud)
这将做String和其他Comparables.如果要检查某些自定义类型的顺序,请使用类中的任何静态工厂方法Ordering或将其子类化.
编辑不区分大小写的订购用法:
boolean isSorted = Ordering.from(String.CASE_INSENSITIVE_ORDER).isOrdered(list);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17525 次 |
| 最近记录: |