2016-03-13 44 views
0

我试图将WordStream单词存储到一个arrayList中,对它进行排序并使用binarySearch来计算不同单词的数量。Java:binarySearch不适用于ArrayList字符串?

为什么binarySearch不适用于ArrayList字符串,我如何解决上述问题?

public static int countUnique1C(WordStream words) { 
    // Put code for question 1C here: Count unique words using a sorted array. 
    // See assignment PDF for full instructions. 

    ArrayList<String> arrayListA = new ArrayList<String>(); 

    for (String i : words) { 
     arrayListA.add(i); 
    } 

    Collections.sort(arrayListA); 

    int differenceCount = 0; 
    for (String i : arrayListA) { 
     if (Arrays.binarySearch(arrayListA, words.nextWord()) < 0) { 
     differenceCount++; 
     } 
    } 
    return differenceCount; 
} 
+2

'ArrayList'不是一个数组,它是一个列表。用'Collections'替换'Arrays' – Dima

回答

0

先制作一个新的String数组ArrayList中的大小,然后用myStringArray = arrayListA.toArray(myStringArray)然后使用二进制搜索上myStringArray

相关问题