链表(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. echarts容器动态设置高度

    测试提了bug,柱状图数据多的情况下,都叠到了一起,效果如下图. 要解决这个bug,首先想到的是让柱状图的容器自适应高度.于是,把原本div上写固定的高度去掉. <div id="my ...

  2. 转!!mybatis xml 传值 if test判断

    当mapper方法传参数 为 String时,且xml中药进行参数比较 比如 是不是等于1 或者等于2 方式1. 方式2. 转自:https://blog.csdn.net/chenaini119/a ...

  3. Oulipo----poj3461(kmp模板)

    题目链接:http://poj.org/problem?id=3461 和 减花布条 的题对比一下: 求s2中s1的个数kmp模板: #include<stdio.h> #include& ...

  4. Saltstack之SSH简介

    安装 yum install -y salt-ssh 官方文档  https://docs.saltstack.com/en/latest/topics/ssh/index.html 配置 vi /e ...

  5. python argparse命令行参数

    测试: 第一个没有任何输出和出错 第二个测试为打印帮助信息,argparse会自动生成帮助文档 第三个测试为未定义的-v参数,会出错 第四个测试为未定义的参数foo,出错 positional arg ...

  6. Mybatis在Maven项目中使用

    Mybatis概览 ORM是什么? ORM是Object Realtion Mapping的缩写,顾名思义,即对象关系映射. ORM是一种以面向对象的方式来进行数据库操作的技术.Web开发中常用的语言 ...

  7. DjangoORM 执行 python manage.py makemigrations出现 no changes detected

    出现 no changes detected python manage.py makemigrations No changes detected 为什么出现这种情况: 当执行这条命令,他会去找所有 ...

  8. Java集合—List(转载)

    本篇文章将集中介绍了List集合相比Collection接口增加的一些重要功能以及List集合的两个重要子类ArrayList及LinkedList. 一.List集合 List作为Collectio ...

  9. mysql 下的命令

    1.查看mysql日志vim /var/log/mysqld.log

  10. Spark2.0机器学习系列之9: 聚类(k-means,Bisecting k-means,Streaming k-means)

    在Spark2.0版本中(不是基于RDD API的MLlib),共有四种聚类方法:      (1)K-means      (2)Latent Dirichlet allocation (LDA)  ...