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实习二的更多相关文章
- 最近找java实习面试被问到的东西总结(Java方向)
时间,就是这么很悄悄的溜走了将近两个年华,不知不觉的,研二了,作为一个一般学校的研究生,不知道该说自己是不学无术,还是说有过努力,反正,这两年里,有过坚持,有过堕落,这不,突然间,有种开窍的急迫感,寻 ...
- 广州三本找Java实习经历
前言 只有光头才能变强 这阵子跑去面试Java实习生啦~~~我来简单介绍一下背景吧. 广州三本大三在读,在广州找实习.大学开始接触编程,一个非常平庸的人. 在学习编程时,跟我类似的人应该会有一个疑问: ...
- 两个月的Java实习结束,继续努力
前言 只有光头才能变强 2018年8月30日,今天我辞职了.在6月25号入职,到现在也有两个月时间了. 感受: 第一天是期待的:第一次将项目拉到本地上看的时候,代码很多,有非常多的模块,模块下又有da ...
- 从零基础到拿到网易Java实习offer,谈谈我的学习经验
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...
- 从零基础到拿到网易Java实习offer,我做对了哪些事
作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间.本文将会讲到我在这 ...
- Java EE : 二、图解 Cookie(小甜饼)
目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.概述 二.详细介绍Cookie 传输 ...
- 利用JAVA生成二维码
本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...
- java实现二维码
说起二维码,微信好像最先启用,随后各类二维码就开始流行起来了.那什么是二维码呢. 1.什么是二维码?百度一下即可 http://baike.baidu.com/view/132241.htm?fr=a ...
- Java 设计模式(二)-六大原则
Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A ...
随机推荐
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter cannot be cast to javax.servlet.Filter
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter cannot be cast to javax.servle ...
- 剑指Offer——把字符串转换成整数
题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果 ...
- mybatis拓展框架对比
对比项 mybatis-plus mybatis-enhance mapper fastmybatis 表名映射 @TableName @Table JPA:@Table JPA:@Table 主键映 ...
- jquery Chosen使用
1,首先去http://harvesthq.github.io/chosen/下载插件. 2,在网页中加入下面的文件. <link rel="stylesheet" href ...
- php微信支付回调验证
//字典排序拼接字符串 function getWxPaySignature($arr){ ksort($arr); $str = ''; foreach ($arr as $k=>$a){ $ ...
- Linux中的yum的配置以及常见报错的处理
一. 今天登录服务器的时候,误把yum所在的cache文件夹中的文件删除掉了,导致yum不能够使用,解决的方法: 显示错误如下: Loaded plugins: fastestmirror Deter ...
- 1130 - Host '' is not allowerd to connect to this MySQL server,
是因为缺少访问权限,在MySQL ->User表里 执行 INSERT INTO `user` VALUES ('%', 'root', '*81F5E21E35407D884A6CD4A731 ...
- Mac电脑下-nodejs安装卸载升级
一.Mac 安装nodejs: 1:brew install node 2:官网上下载指定版本(.pkg)双击安装 二.Mac 卸载nodejs: 1: brew的安装方式的卸载: brew un ...
- Java设计原则—依赖倒置原则(转)
依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象: 抽象不应该依赖细节: 细节应该依赖抽象. 依赖倒置 ...
- CodeForces - 662C Binary Table (FWT)
题意:给一个N*M的0-1矩阵,可以进行若干次操作,每次操作将一行或一列的0和1反转,求最后能得到的最少的1的个数. 分析:本题可用FWT求解. 因为其0-1反转的特殊性且\(N\leq20\),将每 ...