Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/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 如何创建二进制搜索以从头开始使用ArrayList?_Java_Search_Arraylist_Binary - Fatal编程技术网

Java 如何创建二进制搜索以从头开始使用ArrayList?

Java 如何创建二进制搜索以从头开始使用ArrayList?,java,search,arraylist,binary,Java,Search,Arraylist,Binary,所以我需要从一开始就自己编写一个代码,不使用集合或任何快捷方式,问题是,我得到了一个用于二进制搜索的代码,但它是用于数组的。。我能知道是否有办法重新创建或更改某些内容以使其与ArrayList一起工作吗?谢谢 public class binarySearch { public static void main(String args[]){ int target = 42; int arr[] ={10,14,19,

所以我需要从一开始就自己编写一个代码,不使用集合或任何快捷方式,问题是,我得到了一个用于二进制搜索的代码,但它是用于数组的。。我能知道是否有办法重新创建或更改某些内容以使其与ArrayList一起工作吗?谢谢


public class binarySearch {
    public static void main(String args[]){
        
        int target = 42;
        
        int arr[] ={10,14,19,26,27,31,33,35,42,44};
        
        int left = 0;
        int right = arr.length -1;
        
        int mid = 0;
        
        while(left<right){
            mid =  (left + right)/2;
            
            if(arr[mid] == target){
                System.out.println("Location for "+target+" is "+mid);
                System.exit(0);
            }
            else if(target<arr[mid]){
                right = mid -1 ;
            }
            else{
                left = mid + 1;
            }   
        }
    }
}


公共类二进制搜索{
公共静态void main(字符串参数[]){
int目标=42;
int arr[]={10,14,19,26,27,31,33,35,42,44};
int左=0;
int right=arr.length-1;
int-mid=0;

而(左这里是数组操作的列表操作的等价物:

arr.length => list.size()
arr[i] => list.get(i)

只要替换代码片段就可以了。

应该是一个直截了当的翻译。你在哪里遇到麻烦了?“我得到了这一个代码”,所以你甚至没有自己编写那一个代码?我真的是个初学者。我是sorryAn ArrayList,它是java集合框架的一部分。我刚开始搞不清楚if(arr[mid]==target)…我该如何将该等式更改为arrayList?
list.get(mid)
假设您的列表变量被调用
list
,因为每当我键入if(list.get(mid)==target)时,它都会给我错误..可能您的列表没有声明的类型。您应该使用
list
arrayList