java没有指针,那我们如何实现动态数组呢?

上篇评论提及 ”不仅有vector,还有ArrayList,还有List,可做选择“。

"java没有指针",那叫做引用!

今天尝试了java单链表:

Node.java

package test;

public class Node {
Object data;
Node next;
public Node(Object data2, Node node) {
this.data = data2;
this.next = node;
}
}

List.java

package test;

public class List {
Node head;
int size; public List() {
head = new Node(0, null);
size = 0;
} public Node getLast() {
Node node = head;
while(node.next != null) {
node = node.next;
}
return node;
} public int insert(Object data) {
Node last = getLast();
Node node = new Node(data, null);
last.next = node;
size ++;
return 1;
} public void display() {
System.out.println("size = " + size + "");
Node temp = head.next;
while(temp != null) {
System.out.print(temp.data + " ");
temp = temp.next;
}
System.out.println();
}
}

Test.java

package test;

import java.util.Scanner;
import java.util.Vector; public class Test{
static List list = new List();
static Vector vector=new Vector();
public static void main(String[] args) {
list.insert('a');
list.insert("1+1");
list.insert(2);
list.insert(3);
list.insert(4);
list.display(); System.out.println(" ");
Vector va=new Vector();//一维元素
//将整个链表信息放在vector数组第一列
for(int l=0;l<list.size;l++)//将出题加入vector数组以便打印
{
va.add(list.head.next.data);
list.head=list.head.next;
} for(int i=0;i<va.size();i++)
System.out.print(va.get(i)+" ");
}
}

实验结果:

觉得自己炒鸡棒!

其实最开始的结果是:

乱码了,为什么呢?

原因是在for list的循环中,用了String,最后讲String导入vector数组,这样当然会乱码了,毕竟里面的元素都是Object滴。

第二次运行也是错的,vector输出是 0 a 1+1 2 0,为什么呢?

原因在于头结点只是一个头结点,没有任何数据。

该程序实现了多类型元素动态链表。

出人意料的是,昨天想的是,用vector来做每一题的内容存储;刚打开电脑想的是用vector二维数组吧一个存题目,一个存答案;写到刚刚,诶?怎么是单链表+vector二维数组的想法了,哈哈哈哈。

其实也好,毕竟要加入括号,最后只需要在 for list中转换object并加入String,此次循环完之后,将得到的String作为题目存在二维数组中,并压入栈将所得结果也放在二维数组中就OK了。

没什么话要说了,来不及了,有可爱的电商选修。

实践出真知-所谓"java没有指针",那叫做引用!的更多相关文章

  1. 万事开头难 && 实践出真知

    实践出真知,真是千古不变的真理. 前几天在顺手做一个万年历项目,实现了用TFT屏显示实时时间,日期,温度,和按键设置时间,能在特定时间显示特定的话语在显示屏上面.其实这个项目现在想想还是挺简单的.我的 ...

  2. Jfinal——实践出真知

    什么是Jfinal? JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所 ...

  3. python练习 之 实践出真知 中心扩展法求最大回文子串 (leetcode题目)

    1 问题,给定一个字符串,求字符串中包含的最大回文子串,要求O复杂度小于n的平方. 首先需要解决奇数偶数的问题,办法是:插入’#‘,aba变成#a#b#a#,变成奇数个,aa变成#a#a#,变成奇数个 ...

  4. shell编程 之 实践出真知(代码实例)

    1,在任意一个文件夹里,新建10个空文件,文件名为t1.txt-t10.txt ,文件内容分别是11-20 ,就一行,然后把这个10个文件命名成t1.sh-t10.sh. 老司机版: $ for (( ...

  5. 【朝花夕拾】Android自定义View篇之(九)多点触控(下)实践出真知

    前言 在上一篇文章中,已经总结了MotionEvent以及多点触控相关的基础理论知识和常用的函数.本篇将通过实现单指拖动图片,多指拖动图片的实际案例来进行练习并实现一些效果,来理解前面的理论知识.要理 ...

  6. shellb编程 之 实践出真知

    1.查询file1 里面空行的所在行号 纯空行:awk ‘{if($0~/^$/)print NR}’ file 空行和带空格,制表符等的行:awk '$0~/^\s*$/' file 2.查询fil ...

  7. Atitit.java c++指针使用总结O7

    Atitit.java c++指针使用总结O7 1. 指针的本质 1 2. 指针的作用 1 1. 提升性能问题这常常用于遍历数组, 1 2. 计算两个指针的的距离 2 3. 避免栈溢出,创建动态数据结 ...

  8. JAVA语言之怎样写出高性能的Java代码?

    本文主要向大家介绍了JAVA语言之怎样写出高性能的 Java 代码?通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 在这篇文章中,我们将讨论几个有助于提升Java应用程序性能的方法.我 ...

  9. Java匹马行天下之 Java国出了个Java——举国欢庆

    Java帝国的崛起 前言: 看庭前花开花落,宠辱不惊, 望天上云卷云舒,去留无意. 闹心的事儿,选择释怀: 纠缠的人儿,试着放下, 生活其实很美. 心若向阳,就无惧悲伤. 愿你明朗坦荡纵情豁达,有得有 ...

随机推荐

  1. 让NotePad++添加到右键快捷方式

    添加后的效果图: 操作方式: 第一步:在桌面上新建一个txt文本文档,然后将写入如下内容 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT ...

  2. python基础--压缩文件

    1)怎么压缩备份多个文件 使用zipfile 创建压缩文件 查看信息 解压缩 # 创建 import zipfile # os.chdir('test') my_zip = zipfile.ZipFi ...

  3. HTML中特殊符号的处理

    一.写在前面 今天在写页面时记不清大/小于符号该怎么写,于是就想着整理一下方便后面用到! 二.HTML中常用特殊符号的处理    <    <   小于号或显示标记        > ...

  4. Confluence 6 为外部用户管理获得支持

    本页面描述了如果你在配置外部用户管理的时候遇到了问题,如何向 Atlassian 支持项目组寻求帮助.外部用户目录挂你包括 Active Directory,其他 LDAP 服务器,Atlassian ...

  5. CentOS7图形界面与命令行界面切换(转载)

    在图形界面使用 ctrl+alt+F2切换到dos界面 dos界面 ctrl+alt+F2切换回图形界面 在命令上 输入 init 3 命令 切换到dos界面 输入 init 5命令 切换到图形界面 ...

  6. 将Maven项目打包成可执行jar文件(引用第三方jar)

    方法一. mvn assembly 或 mvn package (一个jar包) 把依赖包和自己项目的文件打包如同一个jar包(这种方式对spring的项目不支持) <build>     ...

  7. ORM 对象关系映射

    ORM (object relation mapping) 就是将对象数据转换为sql语句并执行 对象关系映射框架 orm 需要做的事情 1 生成创建表的语句 2 插入数据的语句 3 删除数据的语句 ...

  8. TabLayout和ViewPager

    这里就说下tablayout+viewpager的实现方式:tablayout是android5.0推出来的一个MaterialDesign风格的控件,是专门用来实现tab栏效果的:功能强大,使用方便 ...

  9. bzoj1123 割点性质应用

    删掉无向图上任意一点,请求出将会增加的不连通的点对数 将无向图联通性的问题转化到搜索树方向上考虑 如果一个点不是割点,那么删掉该点的答案很简单,就是2*(n-1) 如果点u是割点,同时u在搜索树上有t ...

  10. hdu4370 dijkstra矩阵转单向边最短路矩阵+自环闭环

    /* 矩阵太神奇了Orz,网上的题解大多是spfa,不过我发想dijkstra也能做 把n*n的矩阵看成是单向边距离矩阵就行 */ #include<iostream> #include& ...