链表(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实习二的更多相关文章

  1. 最近找java实习面试被问到的东西总结(Java方向)

    时间,就是这么很悄悄的溜走了将近两个年华,不知不觉的,研二了,作为一个一般学校的研究生,不知道该说自己是不学无术,还是说有过努力,反正,这两年里,有过坚持,有过堕落,这不,突然间,有种开窍的急迫感,寻 ...

  2. 广州三本找Java实习经历

    前言 只有光头才能变强 这阵子跑去面试Java实习生啦~~~我来简单介绍一下背景吧. 广州三本大三在读,在广州找实习.大学开始接触编程,一个非常平庸的人. 在学习编程时,跟我类似的人应该会有一个疑问: ...

  3. 两个月的Java实习结束,继续努力

    前言 只有光头才能变强 2018年8月30日,今天我辞职了.在6月25号入职,到现在也有两个月时间了. 感受: 第一天是期待的:第一次将项目拉到本地上看的时候,代码很多,有非常多的模块,模块下又有da ...

  4. 从零基础到拿到网易Java实习offer,谈谈我的学习经验

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  5. 从零基础到拿到网易Java实习offer,我做对了哪些事

    作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间.本文将会讲到我在这 ...

  6. Java EE : 二、图解 Cookie(小甜饼)

    目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.概述 二.详细介绍Cookie 传输 ...

  7. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  8. java实现二维码

    说起二维码,微信好像最先启用,随后各类二维码就开始流行起来了.那什么是二维码呢. 1.什么是二维码?百度一下即可 http://baike.baidu.com/view/132241.htm?fr=a ...

  9. Java 设计模式(二)-六大原则

    Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A ...

随机推荐

  1. 时间序列模式——ARIMA模型

    ARIMA模型全称为自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA),是由博克思(Box)和詹金斯(Jenkins ...

  2. 给input文本框添加灰色提示文字,三种方法.

    1.这个是HTML5的属性. h5的好简单.... placeholder="这里输入文字" 2.HTML的: value="你的提示文字" onFocus=& ...

  3. linux统计当前文件夹下所有文件的个数

    ls 加 R 选项表示recursive递归

  4. Linux IPC之管道通信

    2017-04-07 管道通信在linux中使用较为频繁的进程通信机制.基于unix一切皆文件的传统,管道也是一种文件.所以可以使用一般的VFS接口对管道进行读写操作,如read.write.具体管道 ...

  5. 如何用Qt Creator输出helloworld

    0 引言:相比于MFC只要直接在VS上搭建,Qt的配置就相对复杂了,Qt新手上路,老司机绕道,记录下配置Qt的整个过程,直到最终用C++输出“hello world”. 搭建环境:Win10 + qt ...

  6. OpenGL1.0 线段

    OpenGL1.0线段 DionysosLai2014-06-16          本篇作为我学习Opengl第一篇文档.希望自己能在图形学路上走得远一点,达到可以渲染游戏画质目的,现阶段是Box2 ...

  7. fake-useragent,python爬虫伪装请求头

    在编写爬虫进行网页数据的时候,大多数情况下,需要在请求是增加请求头,下面介绍一个python下非常好用的伪装请求头的库:fake-useragent,具体使用说明如下: 1.在scrapy中的使用 第 ...

  8. ruby中的可调用对象--方法

    上一篇讲了ruby中的可调用对象proc和lambda,他们都是块转换成的对象.ruby中的可调用对象还有方法.通过使用method方法,并且以方法名作为参数(字符串或者符号),就可以得到一个方法对象 ...

  9. Oracle数据库面试题(转)

    1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windo ...

  10. linux上使用wget下载文件

    首次安装的centos操作系统是没有安装wget的,所以首先需要先安装wget,然后才能使用wget下载文件. 1.第一步,保证centos能正常连网.使用命令  :yum -y install wg ...