2008-12-17 1 views

답변

13

, 당신은 내가 모두 요구 사항을 포함해야한다 귀하의 질문에 뭔가를 놓친 거지하지 않는 한 모든

List<String> myList = new ArrayList<String>(); 
myList.add(" a test"); 
String temp = myList.get(0); 

으로 캐스팅 피할 수 있습니다. 에 대해 열심히 무엇

+0

고마워요 - 저는 Java 배우는 사람입니다. NetBeans도 Google도 저에게 아무런 도움도주지 못했습니다! – Iain

+0

몇 가지 일이 어려울 수 있습니다, 알아. – krosenvold

+2

장면 뒤에서는 객체를 캐스팅하여 오래된 방법으로 계속 수행하지만 b/c 제네릭은 런타임이 아닌 컴파일 타임에만 표시됩니다. –

1

이해가 안 :

... 당신은 꺾쇠 괄호를 피하려면

public class FooList extends ArrayList<Foo> { 
    ... 
} 

:

List<Foo> fooList = new ArrayList<Foo>(); 

나는 당신이 클래스를 정의 할 수 있습니다 추측

+0

ArrayList와 같은 구체적인 클래스를 확장하는 것은 매우 어렵습니다. List를 구현하고 모든 작업을 FooList의 구성원으로 포함 된 ArrayList로 전달하는 것을 선호합니다. 또는 AbstractList를 확장 할 수 있습니다. –

+0

ArrayList는 고마워요. – Iain

+0

그래, 좋지 않다. 하나의 클래스 만 가진 ArrayList와 같은 간단한 구조의 경우 노드와 가장자리가있는 Graph 데이터 구조와 같은 복잡한 것을 얻을 때 편리 할 수 ​​있다면 편리하다. 예, 포장하는 것이 더 좋을 것입니다. 그러나 그것은 질문에 대한 질책입니다. – JeeBee

1

"가변 길이"로 시간이 지남에 따라 크기가 변경된다는 의미라면 ArrayList가 아닌 LinkedList를 원할 것입니다 :

print("List<Foo> fooList = new LinkedList<Foo>();"); 

그런 식으로 요소를 추가 할 때 성능이 좋아집니다.

관련 문제