Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ClassCastException:-Arrays.asList()_Java_Arrays_Collections_Classcastexception - Fatal编程技术网

java.lang.ClassCastException:-Arrays.asList()

java.lang.ClassCastException:-Arrays.asList(),java,arrays,collections,classcastexception,Java,Arrays,Collections,Classcastexception,线程“main”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;

线程“main”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);

    }

}
import java.util.ArrayList;
导入java.util.array;
导入java.util.Collections;
导入java.util.List;
导入java.util.Scanner;
公共类二进制搜索{
公共静态void main(字符串s[])引发InterruptedException{
int结果=-1;
整数[]数组={34,67,12,32,07,11,25};
ArrayList=新建ArrayList();
list=(ArrayList)数组;
for(整数i:列表)
系统输出打印LN(i);
集合。排序(列表);
for(整数i:列表)
系统输出打印LN(i);
int search=新扫描仪(System.in).nextInt();
int低=0;
int max=list.size()-1;
中间整数=(低+最大)/2;
系统输出打印项数(低+“-”+中+“-”+最大值);
while(低搜索){
max=middle-1;
}否则{
低=中+1;
}
中间=(低+最大)/2;
系统输出打印项数(低+“-”+中+“-”+最大值);
Thread.currentThread().sleep(1000);
}
如果(结果==-1)
System.out.println(“未找到!”);
else System.out.println(“元素”+搜索+”位于位置-“+结果);
}
}
如果我探究上述问题-

List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(array)); 
List<Integer> list2 = Arrays.asList(array);
List<Integer> list3 = new ArrayList<Integer>(list2);
List list1=newarraylist(Arrays.asList(array));
List list2=Arrays.asList(array);
List list3=新阵列列表(list2);
我说得对吗


列表1和列表3有行为,而列表2是不可变的。

返回的
列表
不是a,因此如果您尝试将其强制转换为
ArrayList
,您会得到一个
ClassCastException
,就像您在这里所做的那样:

list=(ArrayList<Integer>) Arrays.asList(array);

返回的
列表
不是,因此如果您尝试将其强制转换为
ArrayList
,则会得到一个
ClassCastException,如下所示:

list=(ArrayList<Integer>) Arrays.asList(array);
返回
列表
,而不是
数组列表

更改:

ArrayList<Integer> list = new ArrayList<Integer>();
list = (ArrayList<Integer>) Arrays.asList(array);
ArrayList list=new ArrayList();
list=(ArrayList)数组;

List List=Arrays.asList(array);
返回
列表
,而不是
数组列表

更改:

ArrayList<Integer> list = new ArrayList<Integer>();
list = (ArrayList<Integer>) Arrays.asList(array);
ArrayList list=new ArrayList();
list=(ArrayList)数组;

List List=Arrays.asList(array);

Arrays.asList
不返回
java.util.ArrayList

使用
列表
界面而不是特定的实现:

       List<Integer> list = Arrays.asList(array);

Arrays.asList
不返回
java.util.ArrayList

使用
列表
界面而不是特定的实现:

       List<Integer> list = Arrays.asList(array);

我建议不要创建
ArrayList
,因为它是一个浪费的实例化。为什么在第二个示例中创建一个空的ArrayList?我建议不要创建
ArrayList
,因为它是一个浪费的实例化。为什么在第二个示例中创建一个空的ArrayList?