2013-11-17 1 views
0

У меня возник вопрос о задании, которое мне требуется выполнить. Напишите программу, управляемую меню, которая либо принимает слова, либо их значения, либо отображает список слов в лексикографическом порядке (т. Е. Как в словаре). Когда запись должна быть добавлена ​​в словарь, вы должны сначала ввести слово как одну строку, а затем ввести значение как отдельную строку. Слово может иметь более одного значения и может быть введено в разное время. Когда это произойдет, поместите каждое последующее значение на отдельной строке. Этому новому значению должно предшествовать тире. Например, если вы вводите следующие слова и их значения в следующем порядке: Библиотека, Школа, Кубок и Школа, то ваш выход должен быть отображен, как показано на рисунке 1.Узлы LinkedList

Использовать концепцию связанных чтобы выполнить это упражнение. Вам понадобятся как минимум следующие классы: • Класс WordMeaning, который содержит имя слова и его значение. • Класс WordMeaningNode, который создает узел информации и поле его ссылки. • Класс WordList, который создает и поддерживает связанный список слов и их значений. • Класс словаря, который проверяет ваши классы.

Вопрос касается второй пули. Я не уверен, как сделать конструктор для WordMeaningNode. Это то, что я до сих пор:

import java.lang.*; 
import java.util.*; 
public class WordMeaningNode 


{ 
    String information; 
    WordMeaningNode locale; 




    public WordMeaningNode(WordMeaning data) 
//WordMeaning is a class that takes two strings(Word and definition) and stores it. 
//Entry is a method that returns the strings stored in WordMeaning. 

    { 
     information = data.Entry(); 
     locale = null; 
    } 

    public String getMeaning() 

    { 
     return information; 
    } 

    public WordMeaningNode getNext() 

    { 
     return locale.getNext(); 
    } 

} 

ответ

0

пару вещей:

во-первых, я думаю, вы бы лучше прохождение в строку, которая является результатом data.entry(). Это было вы можете создавать свои конструкторы следующим образом:

public WordMeaningNode(String entry){ 
    int index = entry.indexOf(',') + 1; //Assuming your String is comma delimited. 
    information = entry.substring(0, index); 
    String next = entry.substring(index); 
    if(next.isEmpty()){ 
     locale = null; 
    } else { 
     locale = new WordMeaningNode(next); 
    } 
} 

Во-вторых, ваш метод GetNext() работает правильно? Кажется, что это всегда приводило бы к исключению нулевого указателя.

Удачи вам!