1

I'm getting a message that says I have unchecked and unsafe operations when I try to compile this binary search program. I looked at other posts on stackoverflow, but I couldn't figure out how to fix my code. Thanks!

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();
}
birna
  • 37
  • 1
  • 4

2 Answers2

3

Method return should be public ArrayList<Integer> sort(ArrayList<Integer> listNum)

Byron
  • 1,313
  • 10
  • 22
1

Your sort method is returning a Raw type, thus the compiler warning. Make your sort method to return a parameterized type of ArrayList.

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

Useful Post:

Community
  • 1
  • 1
PermGenError
  • 45,977
  • 8
  • 87
  • 106