Java 从linkedlist中的值查找节点

Java 从linkedlist中的值查找节点,java,linked-list,Java,Linked List,我想知道,当我将特定的数据值作为参数时,java中是否有一种方法可以找到节点的位置。例如,如果我想删除链接列表中特定对象之前或之后的节点,我将如何执行此操作 感谢java.util.List的indexOf(Object o)方法用于查找对象的索引。从那里,您应该能够使用列表的remove(index-1)删除对象之前的对象 当然,这是假设您使用的链表实现了java.util.list接口。(对于java的内置链表来说,这是绝对正确的。)您可以调用inti=list.indexOf(obj)来获

我想知道,当我将特定的数据值作为参数时,java中是否有一种方法可以找到节点的位置。例如,如果我想删除链接列表中特定对象之前或之后的节点,我将如何执行此操作


感谢

java.util.List的
indexOf(Object o)
方法用于查找对象的索引。从那里,您应该能够使用列表的
remove(index-1)
删除对象之前的对象


当然,这是假设您使用的链表实现了java.util.list接口。(对于java的内置链表来说,这是绝对正确的。)

您可以调用
inti=list.indexOf(obj)
来获取对象的索引。然后只需使用
list.remove(i-1)
即可删除上一个


您应该添加边界检查,这样就不会出现异常。

索引操作对于
LinkedList
非常低效,这就是为什么最好使用
ListIterator
。找到要查找的项目后,它允许您向任意方向移动(这是
listierator
优于
Iterator
的主要优势)

字符串搜索=。。。;
链接列表=。。。;
为了(
ListIterator listIter=list.ListIterator();
listIter.hasNext();
listIter.next()
)
{
stringitem=listIter.next();
if(item.equals(搜索))
{
if(listIter.hasPrevious())
{
previous();
remove();
next();
}
if(listIter.hasNext())
{
next();
remove();
}
打破
}
}
String search = ...;
LinkedList<String> list = ...;

for(
  ListIterator<String> listIter = list.listIterator( );
  listIter.hasNext();
  listIter.next( )
)
{
  String item = listIter.next( );

  if ( item.equals( search ) )
  {
     if (listIter.hasPrevious())
     {
        listIter.previous( );
        listIter.remove( );
        listIter.next( );
     }

     if (listIter.hasNext())
     {
        listIter.next( );
        listIter.remove( );
     }

     break;
  }
}