Java二进制搜索数组列表

时间:2016-06-02 23:42:32

标签: java binary-search

我正在尝试在数组列表中搜索字符串,如下所示正常工作。但是,挑战在于我正在搜索的字符串嵌入在某些文本示例“XXXXTESTXXXX”之间。 到目前为止我所拥有的二进制搜索似乎找不到它。我也试过“包含”方法,但也没有用。不知道我哪里错了。请建议。

Array Content :[PIGEON, XXXBEARXXX , XXXCAT, XXXDOG, XXXELEPHANTXXX , XXXHORSEXXX , XXXLIONXXX , XXXMOUSEXXX , XXXOWLXXX , XXXPARROTXXX , XXXTIGERXXX ]

搜索字符串示例: -

Search String = "BEAR"

代码

ArrayList File_F1_Array = new ArrayList();  
    // Read the lines of the Source file (File_1) in to Arraylist
    try {
        BufferedReader File_F1_Br = new BufferedReader (new FileReader(File_F1));
        while ((File_F1_Line = File_F1_Br.readLine()) !=null ) {
            File_F1_Array.add(File_F1_Line);
        }
        File_F1_Br.close();

    } catch (Exception e) {
        e.printStackTrace();    
    }

    // Sort the array list
    Collections.sort(File_F1_Array);

        // Search lines from Refernce file (File_2) in Arraylist
        try {
            BufferedReader File_F2_br = new BufferedReader (new FileReader(File_F2));
            while ((File_F2_Line = File_F2_br.readLine()) !=null) {

                int index = Collections.binarySearch(File_F1_Array, File_F2_Line);

                boolean StringCheck = File_F1_Array.contains(File_F2_Line);
                }

1 个答案:

答案 0 :(得分:0)

你的算法不正确!你在数组中搜索有" xx ..."你想要摆脱" xx ......" s!你必须创建另一个没有" xx的arraylist。"并在两个数组之间放置一些绑定密钥,以便使第一个数组保持Xs。