Java,将链表与数组进行比较



正在开发一个Java程序,该程序将读取两个不同的段落,将两个字符串转换为每个单词的字符串数组,然后将字符串一转换为链表,该链表将立即按字母顺序排序。

列表排序后,我感到困惑。 我写了一个 for 循环来获取 array2 的长度以根据需要推进它,但是通过链表前进的好循环是什么? 这可能是基本的,但什么都没有想到。

编辑:省略了这一信息。 我的坏。 关键是逐字比较数组和链表,如果两个词匹配,则该词和节点将从链表中删除。

还有,关于Java LinkedList类的另一个问题,是否有删除功能? 如果是这样,它是否会自动将其拉回并链接两个线程?

我已经测试了字符串是否正确分配,并且确实如此。

程序如下。

package algorithm;
import java.io.File;
import java.io.FileWriter;
import java.io.FileNotFoundException;
import java.util.Collections;
import java.util.List;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;
public class main 
{
    public static void main (String[] args) throws FileNotFoundException
    {   
        String input1 = new Scanner(new File("passage1.txt")).useDelimiter("\Z").next();
        String input2 = new Scanner(new File("passage2.txt")).useDelimiter("\Z").next();
        String[] array1 = input1.split(" ");
        String[] array2 = input2.split(" ");
        List<String> list = new LinkedList(Arrays.asList(array1));
        Collections.sort(list);
        int length = array2.length;
        for (int c = 0; c < length; c++)
        {
            // LinkedList loop here

        }
    }
}
简单地说

,您可以使用boolean removeAll(Collection<?> c) List界面中定义的方法。你要做的是,你需要作为集合的实例。在您的情况下,

List<String> list = new LinkedList(Arrays.asList(array1));
Collections.sort(list);
List<String> toRemove = new LinkedList(Arrays.asList(array2));
list.removeAll(toRemove);

现在,列表对象将包含 toRemove 对象中不存在的元素。

相关内容

  • 没有找到相关文章

最新更新