1

このバイナリ検索プログラムをコンパイルしようとすると、チェックされていない安全でない操作があるというメッセージが表示されます。stackoverflow の他の投稿を見ましたが、コードを修正する方法がわかりませんでした。ありがとう!

public binarySearch()
{
    ArrayList<Integer> list = new ArrayList<Integer>();
    for (int i=0;i<10;i++)
    {
        int rand = (int)(Math.random()*10);
        list.add(rand);
        System.out.print(list.get(i)+"\t");
        if ((i+1)%10==0) System.out.println();
    }   
    System.out.println("\n"+search(sort(list),0));
}

public ArrayList sort(ArrayList<Integer> listNum)
{
    for (int i=0;i<listNum.size()-1;i++)
    {
        int min=10000;
        int index=0;
        for (int j=i;j<listNum.size();j++)
            if (listNum.get(j)<min) 
            {
                min=listNum.get(j);
                index=j;
            }
        int temp = listNum.get(i);
        listNum.set(i,listNum.get(index));
        listNum.set(index,temp);
    }
    return listNum;
}   

public boolean search(ArrayList<Integer> listNum, int num)
{
    //need to sort list
    int low = 0;
    int high = listNum.size()-1;
    while (low<=high)
    {
        int mid = (low+high)/2;
        int midValue = listNum.get(mid);
        if (num<midValue)
            high = mid-1;
        if (num>midValue)
            low = mid+1;
        if (num==midValue)
            return true;
    }
    return false;
}

public static void main (String args[])
{
    binarySearch app = new binarySearch();
}
4

2 に答える 2

3

メソッドの戻り値は public ArrayList<Integer> sort(ArrayList<Integer> listNum)

于 2013-03-02T17:25:32.827 に答える
1

sortメソッドはRaw型を返しているため、コンパイラーは警告を出します。パラメータ化されたタイプのArrayListを返すようにsortメソッドを作成します。

public ArrayList<Integer> sort(ArrayList<Integer> listNum)

便利な投稿:

于 2013-03-02T17:26:02.627 に答える