import java.util.*; /* 这里是定义 People 类的代码,无需关心。 */ public class Main { public static void main(String args[]) { LinkedList<People> peoples = new LinkedList<People>();//创建链表 Scanner sc=new Scanner(System.in); peoples.add(new People("rose",18));//链表初始化 People p=new People(sc.next(),sc.nextInt());//新对象 ;//新对象加到链表头 p=new People(sc.next(),sc.nextInt());//新对象 ;//新对象加到链表尾 String name=sc.next();//输入名字 for (int i=peoples.size()-1;i>=0;i--) {//反向遍历链表 p=peoples.get(i);//取出第 i 个元素 if(p.getName().equals(name))//判断元素名字是否等于输入的名字 ;//若名字相等,删除该元素 } System.out.println(peoples);//输出链表 sc.close(); } }
时间: 2024-03-22 08:38:00 浏览: 82
Java求约瑟夫环问题.docx
这段代码存在一些问题,无法正常运行。首先,在新对象加到链表头和链表尾的代码中,分号后应该使用 addFirst() 和 addLast() 方法将新对象加入链表。其次,在删除元素的代码中,分号后应该使用 remove() 方法删除元素。最后,在输出链表的代码中,应该使用 System.out.println(peoples.toString()) 方法输出链表元素。正确的代码如下所示:
```
import java.util.*;
/* 这里是定义 People 类的代码,无需关心。 */
public class Main {
public static void main(String args[]) {
LinkedList<People> peoples = new LinkedList<People>();//创建链表
Scanner sc=new Scanner(System.in);
peoples.add(new People("rose",18));//链表初始化
People p=new People(sc.next(),sc.nextInt());//新对象
peoples.addFirst(p);//新对象加到链表头
p=new People(sc.next(),sc.nextInt());//新对象
peoples.addLast(p);//新对象加到链表尾
String name=sc.next();//输入名字
for (int i=peoples.size()-1;i>=0;i--) {//反向遍历链表
p=peoples.get(i);//取出第 i 个元素
if(p.getName().equals(name)) {//判断元素名字是否等于输入的名字
peoples.remove(p);//若名字相等,删除该元素
}
}
System.out.println(peoples.toString());//输出链表
sc.close();
}
}
```
阅读全文