package homework;

public class Dog extends Pet {
String strain = "dogxx";
int love=80;

public Dog() {

}

public String getStrain() {
return strain;
}

public void setStrain(String strain) {
this.strain = strain;
}

public int getLove() {
return love;
}

public void setLove(int love) {
this.love = love;
}

public Dog(String name,String strain,int health) {
super(name,health);
this.strain = strain;
}

public void print() {
super.print();
System.out.println(" "+strain);
}

@Override
//自定义规则去比较 equals
public boolean equals(Object obj) {
if(this == obj) {
return true;
}
if(obj instanceof Dog) {
Dog dog = (Dog)obj;
//狗的品种和名称 相等
if(dog.strain.equals(this.strain) && dog.name.equals(this.name)) {
return true;
}
}

return false;
}

@Override
public String toString() {
String str = this.name+"\t"+this.strain+"\t"+this.health;
return str;
}

public void toHos() {
this.health += 50;
System.out.println("狗打针,吃药!");
}

@Override
public void eat() {
if(this.health+3 > 100) {
System.out.println("不能再吃了!");
} else {
System.out.println("狗在吃东西");
this.health += 3;
}
}

public void jiao() {
System.out.println("狗狗叫!");
}

}

//父类

package homework;

public abstract class Pet {
String name="无名";
int health=100;
int love=100;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
this.health = health;
}
public int getLove() {
return love;
}
public void setLove(int love) {
this.love = love;
}
public Pet() {}
public Pet(String name,int health) {
this.name = name;
this.health = health;
}
public void print() {
System.out.println(name+" "+health+" "+love);
}

public void toHos() {
this.health += 50;
}

public abstract void eat();

public abstract void jiao();
}

//栈

package homework;

import java.util.LinkedList;

//10 dog
public class Stack {
LinkedList list = new LinkedList();
//入栈
public void push(Pet pet) {
list.addFirst(pet);
}

//出栈 顺便把数据清除掉
public Pet pop() {
return (Pet) list.removeFirst();
}

//判断是否满了
public boolean isFull() {
if(list.size() >= 10) {
return true;
} else {
return false;
}
}

//判断栈是否空了
public boolean empty() {
if(list.size()==0) {
return true;
} else {
return false;
}
}

}

//测试文件

package homework;

public class Test {

public static void main(String[] args) {
Stack stack = new Stack();

for (int i = 0; i < 100; i++) {
Dog dog = new Dog();
dog.setName("神犬"+(i+1)+"号");
dog.setStrain("神犬");
if(!stack.isFull()) {
stack.push(dog);
System.out.println(dog.getName());
} else {
break;
}
}

do {
Pet pet = stack.pop();
System.out.println(pet.getName());
} while(!stack.empty());

if(stack.empty()) {
System.out.println("栈清空了!");
} else {
System.out.println("栈还没空!");
}
}

}

用LinkedList list实现栈的功能的更多相关文章

  1. 用LinkedList集合演示栈和队列的操作

    在数据结构中,栈和队列是两种重要的线性数据结构.它们的主要不同在于:栈中存储的元素,是先进后出:队列中存储的元素是先进先出.我们接下来通过LinkedList集合来演示栈和队列的操作. import ...

  2. 采用LinkedList来模拟栈数据结构的集合--先进后出

    三.用LinkedList来模拟栈数据结构的集合 /* * 自定义一个数据结构为LinkedList的集合类*/public class MyCollection_LinkedList { publi ...

  3. LinkedList集合 实现栈和队列

    LinkedList集合的底层是链表结构实现的,所以可以模拟栈(先进后出)和队列(先进先出). 方法: addFirst() //添加元素到列表的起始位置 addLast() //添加元素到列表的结束 ...

  4. 【Java基础】用LinkedList实现一个简单栈的功能

    栈的基本功能 栈的最基本功能是保障后进先出,然后在此基础上可以对在栈中的对象进行弹入弹出,此外,在弹出时,如果栈为空,则会报错,所以还需要提供获取当前栈大小的方法. 构造存储对象Student /** ...

  5. 数据结构之栈-JavaScript实现栈的功能

    记录自己的学习 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它 ...

  6. 使用java.util.LinkedList模拟实现内存页面置换算法--LRU算法

    一,LRU算法介绍 LRU是内存分配中“离散分配方式”之分页存储管理方式中用到的一个算法.每个进程都有自己的页表,进程只将自己的一部分页面加载到内存的物理块中,当进程在运行过程中,发现某页面不在物理内 ...

  7. java 持有对象

    1.泛型和类型安全的容器 ArrayList,可以自动扩充大小的数组,add插入对象,get访问对象,size查看对象数目. 1 /** 2 * 泛型和类型安全的容器 3 * 2016/5/6 4 * ...

  8. Java基础知识强化之集合框架笔记29:使用LinkedList实现栈数据结构的集合代码(面试题)

    1. 请用LinkedList模拟栈数据结构的集合,并测试:  题目的意思是:     你自己的定义一个集合类,在这个集合类内部可以使用LinkedList模拟,使用LinkedList功能方法封装成 ...

  9. 用LinkedList模拟Stack功能

    集合体系在Java中比较重要,整个集合体系是在JDK1.2版本后出现,Collection作为整个体系的顶层,拥有整个体系通用的功能.对于其下面的小弟,也是各有千秋.下面就一道面试题来看看Linked ...

随机推荐

  1. linux环境的基本搭建

    1.准备Linux环境(我的是centos系统) 如果你是hadoop用户在使用sudo之前需要配置一下:获取sudo权限 切换到root vi /etc/sudoersroot ALL=(ALL) ...

  2. 二分查找——Python实现

    一.排序思想 二分(折半)查找思想请参见:https://www.cnblogs.com/luomeng/p/10585291.html 二.python实现 def binarySearchDemo ...

  3. vsphere client 使用本地磁盘cd/vd1创建虚拟机 operating system not fond,解决办法

    出现operating system not fond 后,狂敲enter键,然后就可以了.别问我为什么,我也是偶然在砸键盘的瞬间发现的

  4. ugui之圆角矩形头像实现

    这个是参考大神的修改了一下渲染方式实现的,可以去查看原帖的,原贴是圆形头像,原理讲的非常详细 点击这里 我写的这个只支持正方形图片,效果是酱紫的~ 一共三个代码,还需要两个代码,原帖里都有的,我只是修 ...

  5. PHP+Xdebug实现远程调试

    以前以为php调试时服务器端和IDE必须在同一台机子上,无意发现xdebug其实是支持远程调试的. 尝试之后发现可以配置成功,还是可以调试代码的感觉爽啊!   php所在Ubuntu服务器       ...

  6. Hibernate 脏检查和刷新缓存机制

    刷新缓存: Session是Hibernate向应用程序提供的操作数据库的主要接口,它提供了基本的保存,更新,删除和加载java对象的方法,Session具有一个缓存,可以管理和追踪所有持久化对象,对 ...

  7. JavaScript里面的居民们2-字符串

    基于HTML,实现需求 按照HTML中按钮的描述以此实现功能 计算结果显示在 id 为 result 的 P 标签中 <!DOCTYPE html> <html> <he ...

  8. 类中调用界面ActiveX控件报错当前线程不在单线程单元中因此无法实例化 ActiveX 控件的解决办法

    解决办法是Form类中定义一个静态的ActiveX对象,在formload中将界面上的ActiveX对象赋值给新定义的对象,类中访问该静态对象即可. public static AxClientDri ...

  9. 把getJson() 设置为同步执行

    因为业务需求,需要在获取到json 数据后,对数据进行处理. 这时候,我们需要把getJson() 的方法设置为同步 $.ajaxSettings.async = false; getJson() 方 ...

  10. 05_ActiveMQ的selectors

    [ JMS Selectors ] JMS Selectors用于在订阅中,基于消息属性对消息进行过滤. 以下是个Selectors的例子:Java代码 consumer = session.crea ...