LinkedListObject 질문입니다.
바나나맛캔디
자바 공부 11일차인 초보자 입니다
이번엔 LinkedList를 사용 하여 간단하게 포커를 만들게 되었습니다...
그런데 하던 중 막히는 곳이 있어서 이렇게 질문 드리게 되었습니다.
import java.util.*;
public class Example1 {
public static void main(String[] args) {
LinkedListObject a =new LinkedListObject();
for(int i =0 ;i 4; i++){
for(int j = 0; j 13; j++){
a.add(new Card(i,j,i));
}
}
}
}
class Card {
int cardNum=0;
int cardType=0;
int cardPoint=0;
String cardkind;
String cardName;
Card(int cardNum, int cardType, int cardPoint){
this.cardNum=cardNum;
this.cardType=cardType;
this.cardPoint=cardPoint;
}
}
이렇게 있을때 지금 보면 Object형을 담을 수 잇는 LinkedList형 a라는 변수가 생기구
그 안으로 Card클래스를 넣는다고 생각하고 만들어보았습니다
이렇게 해서 52개의 카드를 LinkedList에 넣구 그것을 shuffle해서
포커를 하는 유저들에게 a의 특정번지를 5개씩 나누어 주려구하는데요..
근데 이걸 꺼내서 유저들에게 주고
또 이 안에 있는 Object형으로 값을 비교하거나 출력하거나 해야 할끈데..
이걸 다시 꺼내서 사용 할 줄을 몰르겠어요..
ger(0)이건 get(10)이건 다 같은 참조값이 나오구.. 어떻게 해야 할까요 ㅠ.ㅠ
Api를 참고해도 각종 네이버 검색을 통해서도 이부분에 대해서는 자세히 나온곳이 없네요..
-
단화한
네 감사합니다^^ 아직 파일부분과 콜렉션 메소드에 대한 이해가많이 부족하네요
-
푸르니
자바를 공부할때 메모리 구조를 그리고 하면 쉬울때도 있습니다.
주소와 값의 관계 같은거를 생각할수 잇거든요
제가 볼때 그문제가 아닐까 생각됩니다. -
기쁨해
클래스 Card가 equals메서드를 구현하지 않는경우은 obj1 == obj2와 obj1.equals(obj2)가 같습니다.
따라서 조강철님이 작성하신 LinkedList에서는 실제 클래스는 달라도 모든값의 equals가 같으니까 같다고 판단하는것입니다.
결론은 POJO(Plain Old Java Object)에는 equals메서드와 hashcode 메서드를 구현해 주자! 라는것입니다.