在java中访问链表中的每个节点
我以空格为基础拆分字符串。现在,我想访问链接列表的每个节点并维护当前指针,我的目标是检查短语的意思是您可以检查它是否存在于数据库中 如果是,则尽你所能,如果不是,则开始搜索下一个标记,即,如果存在使用任一迭代器,则继续使用,然后使其使用任一迭代器,否则使用任一迭代器保持原样在java中访问链表中的每个节点,java,Java,我以空格为基础拆分字符串。现在,我想访问链接列表的每个节点并维护当前指针,我的目标是检查短语的意思是您可以检查它是否存在于数据库中 如果是,则尽你所能,如果不是,则开始搜索下一个标记,即,如果存在使用任一迭代器,则继续使用,然后使其使用任一迭代器,否则使用任一迭代器保持原样 我已经写了一段代码,但现在我不知道该怎么做了?好吧,我可以提出一些建议 不需要1个令牌字符串缓冲区。 2循环结束后,创建语句对象并获取所有值。 3现在从结果集中创建一个列表 4现在将句子链表和列表从数据库发送到另一个方法,该
我已经写了一段代码,但现在我不知道该怎么做了?好吧,我可以提出一些建议 不需要1个令牌字符串缓冲区。 2循环结束后,创建语句对象并获取所有值。 3现在从结果集中创建一个列表 4现在将句子链表和列表从数据库发送到另一个方法,该方法返回结果字符串 5在方法中,创建一个StringBuffer 5a setBollean previousWordFound=错误 6迭代每个单词的初始列表。 7获取每个单词并签入另一个列表,该列表来自结果集use Contains。 8如果在步骤7中为true 8a previousWordFound=true,从 初始列表中没有其他内容 8b previousWordFound=真 9如果在步骤7中为false 9a previousWordFound=错误 10将值追加到结果字符串缓冲区 11最后返回结果 这是程序,如果结果不符合您的期望,请让我知道,我将更新我的逻辑
String str = "You can use either Iterator or ListIterator for traversing on Java ArrayList";
String[] words = str.split(" ");
LinkedList<String> linkedlist=new LinkedList<String>();
for (int i = 0; i <= words.length-1; i++) {
linkedlist.add(words[i]);
}
ListIterator itr = linkedlist.listIterator();
Connection con = null;
PreparedStatement pstTemp = null;
StringBuilder tokens = new StringBuilder();
try {
con = DBConnection.getJndiConnection();
StringBuffer sbQry = new StringBuffer("SELECT englishlex FROM lex_hindi where (domain='Tourism' or domain='Zgeneral') and englishlex=");
while (itr.hasNext()) {
System.out.println(itr.next());
tokens.append(itr.next());
sbQry.append("'"+tokens+ "',");
System.out.println(tokens.toString());
}
sbQry.append(" order by length(englishlex) desc");
tokens.setLength(0);
} catch (SQLException ex) {
Logger.getLogger(PhraseMarker.class.getName()).log(Level.SEVERE, null, ex);
}
结果:您可以使用-Iterator或ListIterator在Java ArrayList上进行遍历向我们展示您所编写的代码。我不确定我是否正确理解了这一点,但您为什么不循环浏览您的列表…?请格式化您的问题。它不可读。@m0skit0我更新我的帖子并添加我的code@Cataclysm我的帖子或代码中有什么问题吗?我可以给你最后的逻辑方法,可以吗?你有什么建议吗?非常感谢,我们有点接近了。但实际上我想发出一个查询,它不会给出更多的结果集。意思是我尝试了我可以从你开始这是否存在于表中如果是,则向前移动检查下一个标记是否存在可供你使用的条目如果是,则再次向前移动检查你可以使用如果条目存在,则再次向前移动如果不存在,则向后移动,然后使用连字符,然后再次从任何一个开始相同的过程。所以我想要的查询结果集更少,这样我的性能就更好。这意味着处理速度。我想要的最重要的是速度。处理时间。请给e一些建议。我的数据库包含数据,比如你可以冒号值,而不是你可以,这意味着它包含短语
public static void main(String[] args){
String str = "You can use either Iterator or ListIterator for traversing on Java ArrayList";
String[] words = str.split(" ");
LinkedList<String> linkedlist=new LinkedList<String>();
for (int i = 0; i <= words.length-1; i++) {
linkedlist.add(words[i]);
}
//Do your data base activitites
//Assume your List as below
List<String> lst = new ArrayList<String>();
lst.add("You");
lst.add("use");
lst.add("either");
System.out.print(getPharsedValue(linkedlist, lst));
}
private static String getPharsedValue(LinkedList<String> linkedlWords, List<String> resultData){
StringBuffer sb = new StringBuffer();
boolean previousWordFound = false;
for(String word : linkedlWords){
if (resultData != null && resultData.contains(word)){
if(previousWordFound) {
word = "- " + word;
}
previousWordFound = true;
} else {
previousWordFound = false;
}
sb.append(word);
sb.append(" ");
}
return sb.toString();
}