Exception in thread "main" java.lang.ClassCastException:
java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList at BinarySearch.main(BinarySearch.java:14)
below is my code-
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);
}
}
If I explore above problem-
List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(array));
List<Integer> list2 = Arrays.asList(array);
List<Integer> list3 = new ArrayList<Integer>(list2);
am I right?
list1 and list3 have have behavior while list2 is immutable.