實踐出真知-所謂"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了。

 

沒什么話要說了,來不及了,有可愛的電商選修。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM