naz*_*art 5 java sorting output
我需要估计数组列表是否已排序(不排序).
字符串排序时,它们按字母顺序排列.我尝试使用compareTo()方法来确定首先出现的字符串
如果数组列表已排序,则返回true,否则返回false.
码:
public boolean isSorted()
{
boolean sorted = true;
for (int i = 1; i < list.size(); i++) {
if (list.get(i-1).compareTo(list.get(i)) != 1) sorted = false;
}
return sorted;
}
Run Code Online (Sandbox Code Playgroud)
简单测试:
ArrayList<String> animals = new ArrayList<String>();
ArrayListMethods zoo = new ArrayListMethods(animals);
animals.add("ape");
animals.add("dog");
animals.add("zebra");
//test isSorted
System.out.println(zoo.isSorted());
System.out.println("Expected: true");
animals.add("cat");
System.out.println(zoo.isSorted());
System.out.println("Expected: false");
animals.remove("cat");
animals.add(0,"cat");
System.out.println(zoo.isSorted());
System.out.println("Expected: false");
**Output:**
false
Expected: true
false
Expected: false
false
Expected: false
Run Code Online (Sandbox Code Playgroud)
这个简单的测试只显示了1/3覆盖率
如何解决这个问题.
您的方法中有一个小错误.应该 :
public boolean isSorted()
{
boolean sorted = true;
for (int i = 1; i < list.size(); i++) {
if (list.get(i-1).compareTo(list.get(i)) > 0) sorted = false;
}
return sorted;
}
Run Code Online (Sandbox Code Playgroud)
>0而不是!=1,你不能确定1是否返回..
| 归档时间: |
|
| 查看次数: |
18264 次 |
| 最近记录: |