세 명의 arraylists가 있습니다. 2 개는 캔버스상의 점에 대한 좌표를 보유합니다 (xCoord, yCoord). 이것은 dot to dot 프로그램입니다. 세 번째 arraylist는 가장 낮은 "손상"또는 결과 그림의 손상으로 캔버스에서 제거 할 수있는 점을 계산하는 코드를 보유합니다. 이는 "임계 값"을 반환하는 간단한 알고리즘을 기반으로합니다. 임계 값이 작은 점은 임계 값이 높은 점보다 화상이 흐려집니다.다른 ArrayList를 기반으로 ArrayList의 요소를 제거하십시오.
제 문제는 가장 작은 임계 값을 기준으로 x 및 y arraylists에서 n 개의 점을 제거하는 것입니다. 이미 구현 된 사용자 입력 코드가 있습니다.
public void removeDots(int numberDesired){
int i = 0;
for (i =0; i<numberDesired; i++){
xCoord.remove(critDots.get(i); //No idea, just trying random things.
yCoord.remove(critDots.get(i);
}
}
for (i = 0; i < xCoord.size()-1; i++) {
critValue = Algorithm Calculations
critDots.add(critValue);
}
가 나는 적어도에서 중요한 가장 중요한로 구성 할
Collections.sort(critDots)
를 사용하여 생각,하지만 난이 내 xCoord/yCoord의 순서에 영향을 미치는 방법의 확실 해요했습니다.
내가 올바른 방향으로 나아가는 데 도움이되는 몇 가지 팁이 인정 될 것입니다. 또한 xCoord, yCoord 및 critDots는 모두 arraylists입니다.
이class Dot {
private final int x;
private final int y;
// hashValue and equals methods
}
스토어 목록의 캔버스에 점의 목록 :
List<Dot> dots;
이 가능성이 훨씬 더 좋을
'제 3의 arraylist는 도트를 캔버스에서 제거 할 수있는 코드를 계산할 수있는 코드를 보유하고 있습니다.'도트는 제거 할 x 좌표와 y 좌표의 쌍을 의미합니까? –
예입니다. – Fed148
코드의 일부를 설명하는 대신 전체 [mcve]를 제공하십시오. 질문은 예를 들어 어떤 목록에 어떤 종류의 물건을 보관하고 있습니까? 아마 추측 하듯이 실수로 (또는 반대 방향으로) 메소드를 제거 (색인)하는 대신 remove (객체)를 호출 할 수 있습니다. Integer 객체에 int 값을 자동으로 복싱 (boxing)하기 때문에 이러한 현상이 발생할 수 있습니다. 사실, 그럴 가능성이 가장 높습니다. – GhostCat