【发布时间】:2017-03-08 09:02:20
【问题描述】:
代码如下
public static void main(String[] args) {
ArrayList<String> arrayList=new ArrayList<String>();
arrayList.add("1001");
arrayList.add("999");
String val="";
boolean unsorted=true;
if (val.contains("isAscending")) {
for (int i = 0; i < arrayList.size() - 1; i++) {
if (arrayList.get(i).toLowerCase().compareTo(arrayList.get(i + 1).toLowerCase()) <= 0) {
unsorted = false;
System.out.println(unsorted);
} else {
break;
}
}
} else {
for (int i = 0; i < arrayList.size() - 1; i++) {
if (arrayList.get(i).toLowerCase().compareTo(arrayList.get(i + 1).toLowerCase()) >= 0) {
unsorted = false;
System.out.println(unsorted+" "+"descending");
} else {
break;
}
}
}
}
上面的程序工作正常,但问题是当我更换 具有以下数组列表的数组列表不起作用
arrayList.add("22");
arrayList.add("8");
我的意思是,如果第一个索引后面跟着一个 1 位数字,它就会失败
同样的重复在这里
arrayList.add("1001");
arrayList.add("1000");
为此,上面的代码有效
arrayList.add("1001");
arrayList.add("999");
为此它失败了
要求是验证一个arraylist是否有序,或者不需要对arraylist进行排序
【问题讨论】:
-
为什么不将 ArrayList
转换为 ArrayList ?然后排序? -
所有字符串都保证只有数字吗?如果是这样,只需在比较之前使用
Integer.parseInt()- 但是如果字符串只有数字,为什么要转换为小写呢? -
顺便说一句,请不要在标题中说“对 ArrayList 进行排序”,然后在您的问题中说“无需排序”。这让每个人都感到困惑。
-
嗨 ajb 转换为小写是因为如果 arraylist 有字符串值怎么办。如果 arraylist 包含字符串或数值,我只希望该方法用于两者
-
你是什么意思“有字符串值”?这是一个
ArrayList<String>,所以它当然有字符串值。问题是,这些字符串值可以包含字母吗?如果他们可以,那么你的问题没有意义。
标签: java