【发布时间】:2023-03-17 10:25:01
【问题描述】:
线程“主”java.lang.ClassCastException 中的异常:
java.util.Arrays$ArrayList 不能在 BinarySearch.main(BinarySearch.java:14) 处转换为 java.util.ArrayList
下面是我的代码-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class BinarySearch{
public static void main(String s[]) throws InterruptedException{
int result=-1;
Integer[] array ={34,67,12,32,07,11,25} ;
ArrayList<Integer> list=new ArrayList<Integer>();
list=(ArrayList<Integer>) Arrays.asList(array);
for(Integer i:list)
System.out.println(i);
Collections.sort(list);
for(Integer i:list)
System.out.println(i);
int search=new Scanner(System.in).nextInt();
int low=0;
int max=list.size()-1;
int middle=(low+max)/2;
System.out.println(low+" - "+middle+" - "+max );
while(low<=max){
if(list.get(middle)== search){
result=middle;
break;
}else if(list.get(middle)> search){
max=middle-1;
}else{
low=middle+1;
}
middle=(low+max)/2;
System.out.println(low+" - "+middle+" - "+max );
Thread.currentThread().sleep(1000);
}
if(result==-1)
System.out.println("not Found!");
else System.out.println("Element "+search+" found at position- "+result);
}
}
如果我探索上述问题-
List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(array));
List<Integer> list2 = Arrays.asList(array);
List<Integer> list3 = new ArrayList<Integer>(list2);
我说的对吗?
list1 和 list3 有行为,而 list2 是不可变的。
【问题讨论】:
标签: java arrays collections classcastexception