내 프로그램에서 카드를 내 자신의 LinkedList (java.util이 아닌)로 만들었습니다.정수 쌍인 객체 정렬
각 카드 2의 int 이루어지는 목적 - 첫번째는 카드 (1 ~ 13)의 값, 제 (0 내지 3) 카드의 색이다. 값이
0 지금 내가 추가하는 동안 그들을 정렬하는 카드를 추가 내 방법을 업그레이드 할 때
목록
무작위로 생성되고 목록이 만들어집니다. 먼저 값으로, 다음으로 색상으로.public class Lista {
private Element pocz; //start
public int rozmiar;
public Lista() {
boolean zrobione = false;
while (zrobione != true) {
Karta karta = new Karta();
if (karta.getWartosc() == 0) {
zrobione = true;
} else {
this.dodaj(karta);
}
}
}
public void dodaj(Karta k) {
if (pocz == null) {
pocz = new Element(k);
}
Element pom = new Element(k);
Element obecny = pocz;
if (obecny != null) {
while (obecny.getNext() != null) {
obecny = obecny.getNext();
}
obecny.setNext(pom);
}
rozmiar++;
}
내가 꽤에 대한 해결책을 생각하고 같은 내놓았다되었습니다 :
public void dodaj(Karta k){
if(rozmiar == 0) {
if (pocz == null) {
pocz = new Element(k);
}
Element pom = new Element(k);
Element obecny = pocz;
if (obecny != null) {
while (obecny.getNext() != null) {
obecny = obecny.getNext();
}
obecny.setNext(pom);
}
rozmiar++;
}
else{
Element pom = new Element(k);
Element obecny = pocz;
boolean znalezione = false;
if(obecny != null && !znalezione){
while(obecny.getNext() != null && !znalezione){
if(obecny.getKarta().wartosc < obecny.getNext().getKarta().wartosc) {
obecny.setNext(pom);
znalezione = true;
}
else if(obecny.getKarta().wartosc == obecny.getNext().getKarta().wartosc){
if(obecny.getKarta().kolor < obecny.getNext().getKarta().kolor){
obecny.setNext(pom);
znalezione = true;
}
else if(obecny.getKarta().kolor == obecny.getNext().getKarta().kolor){
obecny.setNext(pom);
znalezione = true;
}
else{
obecny = obecny.getNext();
obecny.setNext(pom);
znalezione = true;
}
}
else{
obecny = obecny.getNext();
obecny.setNext(pom);
znalezione = true;
}
}
}
rozmiar++;
}
}
그러나이 방법은 있습니다 여기에
내 코드는 지금과 같은 모습입니다 내 목록에만 2 장의 카드가 포함되어 있고 그것이 모두 작동하는지 잘 모르겠습니다 ... 변수 및 클래스의 영어 이름을 사용하지 못해 죄송합니다.
내가 무엇을 달성하고자하는 예 :
wartosc
이 카드의 값이
kolor
이
dodaj
의미 카드의 색상
Before sorting
11 2
5 3
2 3
13 0
1 2
5 2
1 1
5 1
After sorting
1 1
1 2
2 3
5 1
5 2
5 3
11 2
13 0
rozmiar
목록의 크기입니다
문제는 내 작업은 compareTo를 사용하지 않고이 작업을 수행하는 것입니다. 나도 알아, 그 바보 알아하지만 ... – Szouter