Java实*二

java

链表(java实现)

Link.java

public class Link{

private Node first;

public Link(){

this.first = null;

}

//判断是否为空

public boolean isEmpty(){

if(this.first == null)

return true;

return false;

}

//插入头结点

public void insertHeadNode(int data){

Node tmp = new Node(data);

if(this.first == null)

first = tmp;

else

{

tmp.setNext(first.getNext());

first.setNext(tmp);

}

return ;

}

//在第index下插入data节点

public void insertNode(int data, int index){

Node p = this.first;

int cnt = 0;

while(cnt != index){

p = p.getNext();

cnt++;

}

Node newNode = new Node(data);

newNode.setNext(p.getNext());

p.setNext(newNode);

return ;

}

//delete the head node

public Node deleteHeadNode(){

Node tmp = first;

this.first = tmp.getNext();

return tmp;

}

//find the data in the link

public Node findNode(int data){

Node p = this.first;

while(p != null){

if(p.getData() == data)

return p;

if(p == null)

break;

p = p.getNext();

}

return null;

}

//display the link

public void displayLink(){

Node p = first;

while(p != null){

System.out.println(p.getData());

p = p.getNext();

}

return ;

}

}

Node.java

public class Node{

private int data;

private Node next;

//construction

public Node(){

this.data = 0;

this.next = null;

}

public Node(int data){

this.data = data;

this.next = null;

}

//get

public Node getNext(){

return this.next;

}

public int getData(){

return data;

}

//set

public void setNext(Node next){

this.next = next;

}

public void setData(int data){

this.data = data;

}

//show

public void nodeDisplay(){

System.out.println("{"+data+"}");

}

}

TestOfNode.java

public class TestOfNode{

public static void main(String[] args){

//test of Node

Node tmp1 = new Node(100);

tmp1.nodeDisplay();

Link tmp2 = new Link();

//test of insertHeadNode & displayLink

tmp2.insertHeadNode(00);

tmp2.displayLink();

//test of isEmpty

System.out.println(tmp2.isEmpty());

System.out.println("+++++\n\n");

//test of insertNode

tmp2.insertNode(11,0);

tmp2.insertNode(22,1);

tmp2.insertNode(33,2);

tmp2.insertNode(44,3);

tmp2.insertNode(55,4);

tmp2.insertNode(66,5);

tmp2.displayLink();

//test of delete the head Node

System.out.println("++++");

tmp2.deleteHeadNode();

tmp2.displayLink();

//test of find the data

if(tmp2.findNode(3310)!=null){

System.out.println("truely find the data:" + 3310);

}else{

System.out.println("fasle");

}

System.out.println("++++++");

//test of InsertHeadNode

tmp2.insertHeadNode(1111);

tmp2.insertHeadNode(2222);

tmp2.insertHeadNode(3333);

tmp2.displayLink();

}

}

排序 - 国家金牌银牌铜牌分别排序

TestOfNode.java

public class TestOfNode{

public static void main(String[] args){

//test of Node

Node tmp1 = new Node(100);

tmp1.nodeDisplay();

Link tmp2 = new Link();

//test of insertHeadNode & displayLink

tmp2.insertHeadNode(00);

tmp2.displayLink();

//test of isEmpty

System.out.println(tmp2.isEmpty());

System.out.println("+++++\n\n");

//test of insertNode

tmp2.insertNode(11,0);

tmp2.insertNode(22,1);

tmp2.insertNode(33,2);

tmp2.insertNode(44,3);

tmp2.insertNode(55,4);

tmp2.insertNode(66,5);

tmp2.displayLink();

//test of delete the head Node

System.out.println("++++");

tmp2.deleteHeadNode();

tmp2.displayLink();

//test of find the data

if(tmp2.findNode(3310)!=null){

System.out.println("truely find the data:" + 3310);

}else{

System.out.println("fasle");

}

System.out.println("++++++");

//test of InsertHeadNode

tmp2.insertHeadNode(1111);

tmp2.insertHeadNode(2222);

tmp2.insertHeadNode(3333);

tmp2.displayLink();

}

}

Test.java

import java.util.Arrays;

public class Test{

public static void main(String[] args){

Country American = new Country(46,37,38);

Country English = new Country(27,23,17);

Country China = new Country(26,18,26);

Country Russia = new Country(19,18,19);

Country Germany = new Country(17,10,15);

Country[] countrys = new Country[5];

countrys[0] = American;

countrys[1] = English;

countrys[2] = China;

countrys[3] = Russia;

countrys[4] = Germany;

Arrays.sort(countrys);

for(Country cty:countrys)

System.out.println(cty.gold + " " + cty.silver + " " + cty.copper + " " + cty.sum);

}

}

Coffee 类 - 面向对象编程

Coffee.java

package coffee;

//增加的方法

abstract class AddImplement{

private String name;

public void setName(String name){

this.name = name;

}

public String getName(){

return this.name;

}

public abstract void add();

}

class AddSugarImplement extends AddImplement{

public void add(){

System.out.println("you have added the Sugar^_^");

}

}

class AddMilkImplement extends AddImplement{

public void add(){

System.out.println("you have added the Milk ^_^");

}

}

//抽象类的实现

public abstract class Coffee{

private AddImplement addimpl;

//然后在调用add进行输出

public void add(){

addimpl.add();

};

//应该先调用这个设置函数

public void setAddImpl(AddImplement addimpl){

this.addimpl = addimpl;

};

}

class InstantCoffee extends Coffee{

public void setAddImpl(AddImplement addimpl){

System.out.println("This is an InstantCoffee^_^");

super.setAddImpl(addimpl);

}

}

class LatteCoffee extends Coffee{

public void

setAddImpl(AddImplement addimpl){

System.out.println("This is a LatteCoffee^_^");

super.setAddImpl(addimpl);

}

}

class MochaCoffee extends Coffee{

public void setAddImpl(AddImplement addimpl){

System.out.println("This is a MochaCoffee^_^");

super.setAddImpl(addimpl);

}

}

MainTest.java

package coffee;

import java.util.Scanner;

public class MainTest {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

String choice = new String();

String addsth = new String();

while(true){

System.out.println("What kind of coffe would you want ?");

choice = in.nextLine();

System.out.println("What would you like to add ?Sugar or Milk?");

addsth = in.nextLine();

if(choice.equals("InstantCoffee")){

Coffee c1 = new InstantCoffee();

if(addsth.equals("Sugar")){

AddImplement a1 = new AddSugarImplement();

c1.setAddImpl(a1);

c1.add();

}else if(addsth.equals("Milk")){

AddImplement a2 = new AddMilkImplement();

c1.setAddImpl(a2);

c1.add();

}else{

System.out.println("Sorry,we don't have this kind of things *_*");

}

}else if(choice.equals("LatteCoffee")){

Coffee c1 = new LatteCoffee();

if(addsth.equals("Sugar")){

AddImplement a1 = new AddSugarImplement();

c1.setAddImpl(a1);

c1.add();

}else if(addsth.equals("Milk")){

AddImplement a2 = new AddMilkImplement();

c1.setAddImpl(a2);

c1.add();

}else{

System.out.println("Sorry,we don't have this kind of things *_*");

}

}else if(choice.equals("MochaCoffee")){

Coffee c1 = new MochaCoffee();

if(addsth.equals("Sugar")){

AddImplement a1 = new AddSugarImplement();

c1.setAddImpl(a1);

c1.add();

}else if(addsth.equals("Milk")){

AddImplement a2 = new AddMilkImplement();

c1.setAddImpl(a2);

c1.add();

}else{

System.out.println("Sorry,we don't have this kind of things *_*");

}

}else{

System.out.println("We don't have this kind of Coffee*_*");

}

}

}

}

模拟一个文件复制过程

Test.java

package test;

//系统成分类

abstract class attribute{

int cnt;

// public abstract void operation1();

public abstract void output();

public abstract void copy();

public abstract void traverseDirectory();

}

//目录类

class Folder extends attribute{

private attribute [] parts = new attribute[100];

private String name;

public int cnt = 0;

private int index = 0;

//构造函数部分

Folder(){}

Folder(String name){

this.name = name;

}

//复制操作

// public void operation1(){

// System.out.println("复制文件:" + name);

// }

public void output(){

System.out.println("+" + name);

}

public void add(Folder name){

parts[index] = name;

index++;

name.cnt = this.cnt + 1;

}

public void add(File name){

parts[index] = name;

index++;

name.cnt = this.cnt + 1;

}

public boolean remove(attribute a){

for(int i = 0 ; i < index ;i++){

if(parts[i].equals(a)){

parts[i] = null;

return true;

}

}

return false;

}

//有几个操作

public int getchild(){

return index;

}

//遍历操作

public void traverseDirectory(){

this.output();

for(int i = 0 ; i < index; i++){

for(int k = 0 ; k <= this.cnt; k++){

System.out.print(" ");

}

this.parts[i].traverseDirectory();

}

}

public void copy(){

System.out.println("复制文件:" + name);

for(int j = 0 ; j < this.index ;j++){

this.parts[j].copy();

}

}

}

//文件类

class File extends attribute{

public String name;

public int cnt = 0;

File(String name){

this.name = new String(name);

}

public void output(){

System.out.println("-" + name);

}

public void copy(){

System.out.println("复制文件:" + name);

}

// public void operation1(){

// System.out.println("复制文件:" + name);

// }

public void traverseDirectory(){

this.output();

}

}

public class Test{

public static StringBuffer st = new StringBuffer();

public static void main(String[] args){

Folder document = new Folder("我的资料");

File book = new File("Java编程思想.pdf");

Folder music = new Folder("我的音乐");

File music1 = new File("你是我的眼.mp3");

File music2 = new File("Without You.mp3");

Folder picture = new Folder("我的照片");

File pic1 = new File("我在美国白宫的照片");

File pic2 = new File("我在新加坡的照片");

File pic3 = new File("我在南极的照片");

File pic4 = new File("我在南非的照片");

File pic5 = new File("我与***的合影");

document.add(book);

document.add(music);

music.add(music1);

music.add(music2);

picture.add(pic1);

picture.add(pic2);

picture.add(pic3);

picture.add(pic4);

picture.add(pic5);

document.copy();

System.out.println("-------------------------------");

document.traverseDirectory();

picture.traverseDirectory();

}

}

以上是 Java实*二 的全部内容, 来源链接: utcz.com/z/394010.html

回到顶部