如何使用公共String方法遍历SortedTree列表?
我正在尝试编写一个方法来确定列表中的下一个项目,将游标设置为null,然后返回该项目。然后我将光标设置为null并返回null。理想情况下,我想附加到一个字符串(如toString),然后选择一个匹配光标后面的条目。 (如果有条目)。
或者我会更好地使用像ArrayList这样的东西吗?
我的树司机:
SortedTree tree = new SortedTree();
// Populate the tree
tree.add("Jim");
tree.add("John");
tree.add("Henry");
tree.add("Paul");
tree.add("Ringo");
tree.add("Mick");
tree.add("Keith");
tree.add("Charlie");
tree.add("Eric");
tree.add("David");
tree.add("George");
// traverse it looking for eeeeerie names
System.out.println("Eeeeerie items in our tree:");
String item = tree.first();
while (item != null) {
if (item.contains("e") || item.contains("E"))
System.out.println(item);
item = tree.next();
}
这是我试图返回适当名称的方法 就目前而言,我的方法只返回名称“Charlie”,但输出应为:
“我们树上的Eeeeerie物品:
查理
埃里克
乔治
亨利
基思“
public String next() {
cursor = root;
String nodeList = null;
while (cursor.right != null) {
cursor = cursor.right;
nodeList += cursor.item;
}
if (cursor == null) {
return null;
}
return null;
}
我还应该包含我的游标代码:
TreeNode cursor; // node to remember the current traversal position
public void setCursor(TreeNode node) {
this.cursor = node;
}
这是我在驱动程序中调用的第一个()方法
public String first() {
TreeNode beginning = root;
do {
beginning = beginning.left;
} while (beginning.left != null);
setCursor(beginning);
return beginning.item;
}
答案 0 :(得分:0)
像这样:
List<String> names = new ArrayList<String>();
names.add("Jim");
// ... add rest here ...
List<String> eerie = new ArrayList<String>(); // a new empty list
// Collect the ones you want
for(String name : names) {
// I'm not sure what 'contains()' is (in your code), but this will work.
if(item.indexOf("e") != -1 || item.indexOf("E") != -1) {
eerie.add(name);
}
}
// Sort 'em
Collections.sort(eerie);
// Print 'em
for(String name : eerie) {
System.out.println(name);
}