[語法] 泛型&巢狀類別語法
各位前輩好,小弟在寫,Duck,Duck,Goose的遊戲(從資料結構的書上練習題而來)。
但是碰到泛型還有巢類別的語法問題如下。請直接跳到程式最下面(倒數第五行)的中文註
解。
import java.util.Random;
public class CircularlyLinkedList <E>
{
private static class Node<E>
{
private E element;
private Node<E> next;
public Node(E e, Node<E> n)
{
element = e;
next = n;
}
public E getElement( )
{ return element; }
public Node<E> getNext( )
{ return next; }
public void setNext(Node<E> n)
{ next = n; }
}
// instance variables of the CircularlyLinkedList
private Node<E> tail = null;
private int size = 0;
public CircularlyLinkedList( ) { }
// access methods
public int size( ) { return size; }
public boolean isEmpty( ) { return size == 0; }
public E first( ) {
if (isEmpty( )) return null;
return tail.getNext( ).getElement( ); ///???
}
public E last( )
{
if (isEmpty( )) return null;
return tail.getElement( );
}
// update methods
public void rotate( )
{
if (tail != null)
tail = tail.getNext( );
}
public void addFirst(E e)
{
if (size == 0)
{
tail = new Node<>(e, null);
tail.setNext(tail);
}
else
{
Node<E> newest = new Node<>(e, tail.getNext( ));
tail.setNext(newest);
}
size++;
}
public void addLast(E e)
{
addFirst(e);
tail = tail.getNext( );
}
public E removeFirst( )
{
if (isEmpty( )) return null;
Node<E> head = tail.getNext( );
if (head == tail) tail = null;
else tail.setNext(head.getNext( ));
size--;
return head.getElement( );
}
public static void main(String[] args)
{
CircularlyLinkedList C = new CircularlyLinkedList();
String names []={"Scott", "Andy","Cool", "Check"};
for (int i=0; i<names.length ; i++)
{
C.Node<String,Node<String>>(names[i],"aa" );
///上面這一行一直有語法問題
}
}
}
問題一:上網爬文,巢狀類別可以忽略它的存在,要用朝狀類別裡面的方法(第八行),
Node(E e, Node<E> n), 直接指向主類別(第二行),CircularlyLinkedList,建立物件
,C,然後就如倒數第五行一樣使用,C.Node。請問我這樣的理解正確嗎?
問題二:第八行的方法使用了泛型,網路查了一下,要針對我所設定的泛型給予型態,
才能夠使用。所以倒數第五行我針對,E,指定了String型態,Node<E>,也指定了String
型態。我覺得應該是這裡錯,但我不知道該怎麼寫這樣的語法。
問題三:我的認知這裡的Node<E>算是型態,就類似Int or Char之類的,那裏面的E
又代表什麼。有點亂了。
以上問題還請前輩們指點。感謝前輩們幫忙。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.95.199
※ 文章網址: https://www.ptt.cc/bbs/java/M.1489918372.A.742.html
→
03/19 18:48, , 1F
03/19 18:48, 1F
→
03/19 18:58, , 2F
03/19 18:58, 2F
→
03/19 18:58, , 3F
03/19 18:58, 3F
→
03/19 18:59, , 4F
03/19 18:59, 4F
java 近期熱門文章
PTT數位生活區 即時熱門文章