实践出真知-所谓"java没有指针",那叫做引用!
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没有指针",那叫做引用!的更多相关文章
- 万事开头难 && 实践出真知
实践出真知,真是千古不变的真理. 前几天在顺手做一个万年历项目,实现了用TFT屏显示实时时间,日期,温度,和按键设置时间,能在特定时间显示特定的话语在显示屏上面.其实这个项目现在想想还是挺简单的.我的 ...
- Jfinal——实践出真知
什么是Jfinal? JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所 ...
- python练习 之 实践出真知 中心扩展法求最大回文子串 (leetcode题目)
1 问题,给定一个字符串,求字符串中包含的最大回文子串,要求O复杂度小于n的平方. 首先需要解决奇数偶数的问题,办法是:插入’#‘,aba变成#a#b#a#,变成奇数个,aa变成#a#a#,变成奇数个 ...
- shell编程 之 实践出真知(代码实例)
1,在任意一个文件夹里,新建10个空文件,文件名为t1.txt-t10.txt ,文件内容分别是11-20 ,就一行,然后把这个10个文件命名成t1.sh-t10.sh. 老司机版: $ for (( ...
- 【朝花夕拾】Android自定义View篇之(九)多点触控(下)实践出真知
前言 在上一篇文章中,已经总结了MotionEvent以及多点触控相关的基础理论知识和常用的函数.本篇将通过实现单指拖动图片,多指拖动图片的实际案例来进行练习并实现一些效果,来理解前面的理论知识.要理 ...
- shellb编程 之 实践出真知
1.查询file1 里面空行的所在行号 纯空行:awk ‘{if($0~/^$/)print NR}’ file 空行和带空格,制表符等的行:awk '$0~/^\s*$/' file 2.查询fil ...
- Atitit.java c++指针使用总结O7
Atitit.java c++指针使用总结O7 1. 指针的本质 1 2. 指针的作用 1 1. 提升性能问题这常常用于遍历数组, 1 2. 计算两个指针的的距离 2 3. 避免栈溢出,创建动态数据结 ...
- JAVA语言之怎样写出高性能的Java代码?
本文主要向大家介绍了JAVA语言之怎样写出高性能的 Java 代码?通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 在这篇文章中,我们将讨论几个有助于提升Java应用程序性能的方法.我 ...
- Java匹马行天下之 Java国出了个Java——举国欢庆
Java帝国的崛起 前言: 看庭前花开花落,宠辱不惊, 望天上云卷云舒,去留无意. 闹心的事儿,选择释怀: 纠缠的人儿,试着放下, 生活其实很美. 心若向阳,就无惧悲伤. 愿你明朗坦荡纵情豁达,有得有 ...
随机推荐
- iOS weak 内存释放问题
我们都知道weak 关键字可以解决内存不释放问题,但是使用上有些讲究. 看代码: import UIKit var str = "Hello, playground" class ...
- 纯CSS3轮播图
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- C# 我的小画板
我的画板 先看实现图 实现过程 using System; using System.Collections.Generic; using System.ComponentModel; using S ...
- PID控制器开发笔记之一:PID算法原理及基本实现
在自动控制中,PID及其衍生出来的算法是应用最广的算法之一.各个做自动控制的厂家基本都有会实现这一经典算法.我们在做项目的过程中,也时常会遇到类似的需求,所以就想实现这一算法以适用于更多的应用场景. ...
- 实用的sublime插件集合 – sublime推荐必备插件
Package Control 功能:安装包管理 简介:sublime插件控制台,提供添加.删除.禁用.查找插件等功能 使用:https://sublime.wbond.net/installatio ...
- Android CTS Test
什么是CTS测试?了解这个问题前,我们先来搜索了解一遍“Google GMS 认证”.GMS全称为GoogleMobile Service,即谷歌移动服务.说白了GMS其实就是一系列谷歌的应用集合.谷 ...
- ubuntu 安装Mysql8.0
1. 去官网下载安装包 下载链接:点击打开链接 https://dev.mysql.com/downloads/mysql/ 如果你的系统是32位选择第一个,64位选择第二个 也可以用wget 下载 ...
- swoole 简介
- java实现 排序算法(鸡尾酒排序&选择排序&插入排序&二分插入排序)
1.鸡尾酒排序算法 源程序代码: package com.SuanFa; public class Cocktial { public static void main(String[] arg ...
- cf1133 bcdef
b所有数模k,记录出现次数即可 #include<bits/stdc++.h> using namespace std; int main(){ ]; ]={}; cin>>n ...