亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在java中為列表分配對象類型?

如何在java中為列表分配對象類型?

吃雞游戲 2023-06-08 21:00:44
假設我有一堂課:class Person{? String name = "";? int age = 0;? Person(String name, String age){? ? this.name = name;? ? this.age = age;? }}我實現了自己的 List 但我不知道如何像傳統的 List 那樣指定對象類型:List<Person>。如果我讓默認類為&ldquo;對象&rdquo;,它可以工作,但我無法從我的對象訪問變量和方法。例如,print( list.get(0) )將顯示我的對象的引用,但 print( list.get(0).name ) 它不起作用。我希望我的列表適用于任何課程。這就是我聲明我的實施列表的方式:List list = new List();list.add( new Person("Andrei", 19) );
查看完整描述

3 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

您應該使您的 LinkedList 成為通用的,同時也使嵌入的 Node 成為可能,這樣您就可以將 Node 中的數據字段定義為您傳遞的類型的實例:


class Node<T>{

    T data;// Object data

    Node next;


    Node(T d){

        this.data = d;

        this.next = null;

    }

}

public class LinkedList<T> {

    Node<T> first = null;

    Node<T> last = null;

    // TODO change all your methods to accept value of type T instead of Object

}


查看完整回答
反對 回復 2023-06-08
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

你的列表類應該使用泛型


public class MyList<T> {

    public T getAtIndex(int i) {

        return ...;

    }

}

然后你可以創建一個這樣的


MyList<Person> = new MyList<Person>();

我還建議擴展列表


public class MyList<T> extends List<T>

其中提供了get等標準方法


@Override

public T get(int index) {

    return ...;

}


查看完整回答
反對 回復 2023-06-08
?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

您的LinkedList課程不是通用的。要使其通用,您可以按如下方式定義它......


public class LinkedList<T> {

}

但是,由于您的LinkedList類僅包含Nodes,因此您應該只使您的Node類通用。就像是...


class Node<T> {

? ? T data;

? ? Node next;


? ? Node(T d){

? ? ? ? this.data = d;

? ? ? ? this.next = null;

? ? }

}

然后你可以像這樣創建一個人...... Node


Node<Person> personNode = new Node<>(new Person("George", 20));

順便說一下,我建議重命名你的類,因為標準 java 類庫中LinkedList已經有這樣一個類。


查看完整回答
反對 回復 2023-06-08
  • 3 回答
  • 0 關注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號