在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();
    }