파일 배열을 검색하고 새 파일 배열에 고유 한 파일 이름을 저장하고 새 배열을 반환하는 프로그램을 만들려고합니다. (있는 경우). 내 코드가 실행되지만 설정 한 길이가없는 새 파일 배열에 값을 저장하지 않습니다. 호출 할 때 빈 배열을 반환합니다. 내가 설정 한 방식으로, 중복이 있는지 검사하고, 중복 된 경우 한 번 저장합니다. 그렇지 않으면 값을 저장하고 계속합니다. 문제는 for 루프를 통해 실행 된 후에는이 값을 저장하지 않는다는 것입니다. 파일 배열에 값을 저장하는 더 좋은 방법이 있습니까?다른 파일 배열에 파일 배열 값을 저장하는 방법
여기 내 테스터 블록에서 파일 배열을받는 uniqueFile
입니다.
public static File[] getUnique(File[] files) {
int count = 0, place = 0;
File[] newFile = new File[] {};
for (int i = 0; i < files.length; i++) {
count = 0;
for (int x = 1; x < files.length; x++) {
if (files[i].equals(files[x]))
count++;
}
try {
if (count >= 1)
newFile[place] = files[i];
else
newFile[place] = files[i];
} catch (Exception e) {
}
place++;
}
return newFile;
}
이 내 테스터 블록 :
{
File Freckle = new File("Freckle");
File Pickle = new File("Pickle");
File Sam = new File("Sam");
File Cat = new File("Cat");
File[] files = new File[] { Freckle, Pickle, Freckle, Sam, Cat,
Pickle };
File[] output = ArrayExercises.getUnique(files);
System.out.println(Arrays.toString(output));
}
가 내가 일하는 것이 있는지 확인하기 위해 테스트하는 일반적인 파일 이름에 넣어. 결국 실제 파일을 포함 시키겠다.하지만 계속 진행하기 전에 먼저이 버그를 알아 내고 싶다.
대신 세트를 사용해야하는 이유는 무엇입니까? –
Perception
Java에서 변수 이름을 소문자로 사용하는 것이 좋습니다 (예 :'freckle'가 아니라'freckle'). 이것은 다른 독자가 대문자 인 클래스에서 변수 이름을 구별하는 데 도움이됩니다. –