[英]Implementing the dictionary as a sorted singly linked list Java
我必須創建一個字典,在其中輸入5個句子的文本文件,然后將其中的單詞帶入單詞,並使用單鏈接列表按字母順序對它們進行排序。 我有文本文件,但確實需要幫助,以使它們成為鏈接列表並對其進行排序。 我了解如何創建鏈接列表,但不知道如何從文本文件創建鏈接列表並對其進行排序。 任何幫助,將不勝感激。
import java.util.*;
public class Dictionary {
public static void main(String[] args) {
String[] things = {"a", "dog", "eats"};
List<String> list1 = new LinkedList<String>();
for(String x : things)
list1.add(x);
String[] things2 = {"The", "Cat", "Walks"};
List<String> list2 = new LinkedList<String>();
for(String y : things2)
list2.add(y);
list1.addAll(list2);
list2 = null;
printMe(list1);
printMe(list1);
}
private static void printMe(List<String> l) {
for(String b : l)
System.out.printf("%s ", b);
System.out.println();
}
}
嘗試使用掃描儀讀取輸入文件
好吧,Scanner類具有一些根據您提供的模式遍歷令牌的方法。 您可以在每次調用“ hasNext(Pattern)”和“ next(Pattern)”時提供模式(正則表達式),也可以通過調用“ usePattern(Pattern)”方法設置默認模式,並使用標准“ hasNext()”和“ next()”迭代器方法。
如果您未設置任何模式,它將使用以下方式:
// A pattern for java whitespace
private static Pattern WHITESPACE_PATTERN = Pattern.compile(
"\\p{javaWhitespace}+");
我不會在這里討論正則表達式,但是您的一般流程將是:
Scanner scanner = new Scanner(reader);
scanner.usePattern(Pattern.compile("some regex pattern")); // if you want something other than the default
while (scanner.hasNext()) {
String word = scanner.next();
}
讀者可能是java.io.FileReader的一個實例。 而且,您想要更大的文件吞吐量,可以將FileReader包裝在java.io.BufferedReader中。
為了進行排序,可以在添加所有單詞之后使用Collections.sort()進行排序,或者在添加每個單詞時,可以使用List.listIterator()方法返回的ListIterator遍歷現有的鏈接列表,找到第一個元素在語法上大於該標記,並使用ListIterator.add()方法在該標記之前插入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.