ArrayList 보다가 생긴 질문인데요
꽃내
어레이 리스트 공부하다가 어떤분 블로그에 있는거 보고 질문드리는건데요
import java.util.*;
class dummy{
int x=3;
}
public class arl2 {
public static void main(string args[]){
arraylist a = new arraylist();
a.add(shin); // 문자열추가
a.add(new integer(4)); // 인티저 객체추가
a.add(new dummy()); // 객체추가
system.out.println(a.size()); // 사이즈 갯수출력
integer obj = (integer)a.get(1); //객체값얻기
int i = obj.intvalue(); // 정수형으로 바꿔얻기
a.add(1, eui); // 1인덱스에 껴넣기
for(int j=0;ja.size();j++) // 객체내용 모두 출력
{
object temp = a.get(j);
if(temp instanceof string){ // 문자열이면
string str = (string)temp;
system.out.println(str);
}
if(temp instanceof integer){ // 정수형이면
integer x = (integer)temp;
system.out.println(x);
}
if(temp instanceof double){ // 더블형이면
double y = (double)temp;
system.out.println(y);
}
}
}
}이소스 를 출력하면 마지막에 4라는 값이 나오는데요 어디서 튀어나온건지 이해가 안되네요;;
저 빨간색 부분에서는 temp 자료형이 double형이면 실행하는거잔아요 근데 위에 어레이 리스트로 추가한
것중에 더블형이 어딪나요? dummy클래스가 포함하는 int 값은 3뿐인데....
파란색 글자부분을
a.add(new dummy().x); 이렇게하고
저 if문을
if(temp instanceof dummy){
integer y = (integer)temp;
system.out.println(y);
이렇게 바꾸면 3이 잘 출력되긴하는데 여전히 출력값위엔 4가 있네요;;
이 4 어디서 튀어나온건가요;;
-
해지개
엥....새벽에 졸면서봐서그런가...왜저걸못봤지 ㅠㅠ 그래도답변 감사합니다 꾸벅
-
연초록
a.add(new Integer(4)); // 인티저 객체추가
여기서 집어넣었으니 4가 당연히 출력됩니다. 언제 지운적 있나요?
remove로 지워야 지워집니다. get은 꺼내보는거지 꺼내서 없애는것이 아닙니다.
Dummy라는 케이스를 추가하게되면 4가지 객체가 모두 출력될겁니다.