체이닝을 사용하여 해시 테이블의 데이터 구조를 쓰려고합니다. 중첩 클래스에서 키워드 "static"을 제거하면 "SeparateChaining.Node의 일반 배열을 만들 수 없습니다"라는 오류가 발생합니다. 어디에 새를 사용하여 hmap에 메모리를 할당하는 줄에.일반 외래 클래스의 경우 중첩 클래스를 정적으로 선언해야하는 이유는 무엇입니까?
정적 키워드를 사용하면 잘 작동합니다. 여기 정적 인 키워드의 중요성과 그 차이점을 지적 해 주실 수 있습니까? 개체의 배열을 만드는 중입니다. 그런 다음 오류 (Eclipse)에 제네릭 배열이 어떻게 표시됩니까?
public class SeparateChaining<Key,Value> {
private int m;
private Node[] hmap;
private int n;
public SeparateChaining()
{
m=5;
n=0;
//error here on removal of static keyword from the node class declaration
hmap=new Node[m];
}
private ____ class Node //works fine with static. Otherwise shows error
{
private Object key;
private Object value;
private Node next;
public Node(Object k, Object v)
{
key=k;
value=v;
}
}
감사
'key'의 타입이'Key'가 아니고'value'의 타입이'Value' ('Object'가 아님)입니까? 그리고 생성자 매개 변수도 마찬가지입니까? – Dukeling