用list A= new linkedlist()编译后,无法实现A.addFirst()方法,为什么?

朝九晚十 2016-08-13 11:53:17


package com.gpf.Class0813.TestArrayList;


import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class TestPenguin {
public static void main(String[] args) {
Penguin penguin1 = new Penguin();
Penguin penguin2 = new Penguin();
Penguin penguin3 = new Penguin();
Penguin penguin4 = new Penguin();

penguin1.setName("1");
penguin1.setAge(1);
penguin2.setName("2");
penguin2.setAge(2);
penguin3.setName("3");
penguin3.setAge(3);
penguin4.setName("4");
penguin4.setAge(4);

// List<Penguin> penguins = new ArrayList<Penguin>();

List<Penguin> pl = new LinkedList<Penguin>();

// penguins.add(penguin1);
// penguins.add(penguin2);
// penguins.add(penguin3);
// penguins.add(penguin4);
//
pl.addLast(penguin1); //这里会报错,why???
pl.addLast(penguin2) //这里会报错


System.out.println("The number of penguins :"+penguins.size());

for (Penguin penguin : penguins) {
System.out.println("Name:"+penguin.getName()+"\tAge:"+penguin.getAge());
}

}

}

...全文
550 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
朝九晚十 2016-08-15
  • 打赏
  • 举报
回复
懂了。。。突然发现我问的问题好幼稚啊。。。
anakin_feng 2016-08-13
  • 打赏
  • 举报
回复
因为list没有这个方法啊,这是LinkedList的方法
朝九晚十 2016-08-13
  • 打赏
  • 举报
回复
pl.addLast(penguin1); 这句话为什么报错?提示错误: The method addLast(Penguin) is undefined for the type List<Penguin>
BruceLee#666 2016-08-13
  • 打赏
  • 举报
回复
addfirst是linkedlist所属的方法,所以不能用list直接去new一个linkedlist,你直接linkedlist a = new linkedlist就好了
lzl1030152809 2016-08-13
  • 打赏
  • 举报
回复
addFirst()是LinkedList特有的方法,List中没有该方法。
weixin_35722556 2016-08-13
  • 打赏
  • 举报
回复

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class TestPenguin {
	public static void main(String[] args) {
		Penguin penguin1 = new Penguin();
		Penguin penguin2 = new Penguin();
		Penguin penguin3 = new Penguin();
		Penguin penguin4 = new Penguin();
		
		penguin1.setName("1");
		penguin1.setAge(1);
		penguin2.setName("2");
		penguin2.setAge(2);
		penguin3.setName("3");
		penguin3.setAge(3);
		penguin4.setName("4");
		penguin4.setAge(4);
		
//		List<Penguin> penguins = new ArrayList<Penguin>();
		
		LinkedList<Penguin> pl = new LinkedList<Penguin>();
		
//		penguins.add(penguin1);
//		penguins.add(penguin2);
//		penguins.add(penguin3);
//		penguins.add(penguin4);
//		
		pl.addLast(penguin1);
	//	pl.addLast(penguin1);  //这里会报错,why??? 因为 List接口中只有add 。 
	//	pl.addLast(penguin2);  //这里会报错
		
		
		System.out.println("The number of penguins :"+pl.size());
		
		for (Penguin penguin : pl) {
			System.out.println("Name:"+penguin.getName()+"\tAge:"+penguin.getAge());
		}
		
	}

}
class Penguin
{
	String name;
	int age;
	public void setName(String name)
	{
		this.name = name;
	}
	public void setAge(int age)
	{
		this.age = age;
	}
	public int getAge()
	{
		return age;
	}
	public String getName()
	{
		return name;
	}
}
thankYouLikeMe 2016-08-13
  • 打赏
  • 举报
回复
把new后面linkedList里面的参数去掉就行了
NewMoons 2016-08-13
  • 打赏
  • 举报
回复
楼主还是对多态不理解啊。你定义的类没有这个方法,当然会报错。 你可能会说那我new的是LinkedList啊。 剩下的我不想说什么了,你好好百度下“多态”这个词吧。 或者仔细看看下面这个帖子:http://bbs.csdn.net/topics/391998534

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧