0

how to print out this new data structure by constructing a new method printList which displays the contents of a LinkedList aList. using (print) as a template.

public void actionPerformed(ActionEvent event) {    
    String[] anArray=null;
    if (event.getSource() == reading) {
        String s = txt1.getText();
        String delims = expression.getText(); 
        anArray = s.split(delims);
        result.setText("");
        print(anArray);
    } 
    LinkedList<String> mkList;
    java.util.List<String> aList = new LinkedList<String>();

} // actionPerformed

public LinkedList<String> mkList(String[] sa) {
    LinkedList<String> st = new LinkedList<String>();
    for (int i = 0; i < sa.length && sa[i] != null; i++)
        st.add(sa[i] + "\n");
    return st;
} // mkList

public void print(String[] sa) {  
   for (int i = 0; i < sa.length && sa[i] != null; i++)
        result.append(sa[i] + "\n");
   // Log the results to the terminal
   System.out.println("Input: '" + txt1.getText() + "'");
   System.out.println("Regular Expression: '" + expression.getText() +"'");
   System.out.println("Output:\n" + result.getText());
} // print
4

3 回答 3

2

Simply System.out.println(aList);

OR

public void printList (LinkedList<String> aList) {
    for(String currentString : aList){
        System.out.println(currentString);
    }
}
于 2013-03-12T11:44:54.610 回答
0

所有标准 Java 集合都有一个合理的toString()实现。通常元素用方括号“[”括起来,元素用逗号分隔。toString() 在每个元素上调用。请参阅AbstractCollection 源代码

如果此表示符合您的需要,则只需使用toString. 无需编写代码。

如果您想要自定义表示,则可以使用或编写辅助方法。Guava的Joiner 类非常有用,应该是 JDK 的一部分。您可以将其视为函数式语言中的 reducer,Iterators.transform()如果您想对每个元素应用特定操作,还可以添加一个 map 步骤。

显然,仅将 Guava 用于 Joiner 类是没有意义的。您也可以编写自己的方法。使用 AbstractCollection.toString() 或 Joiner.join() 作为参考。

于 2013-03-12T12:10:32.803 回答
0

您也可以使用此解决方案:)

public void printList (LinkedList<String> aList) {
    System.out.println(aList.toString().replace("[", "").replace("]", "").replace(",", "\n"););
}
于 2013-03-12T12:04:20.570 回答