카테고리 없음

[자바] 텍스트 파일에서 입력 할 때 크기가 비교되지 않습니다.

행복을전해요 2021. 1. 19. 03:35

이게 문제 야:

ArrayList<BigInteger> a=new ArrayList<BigInteger>();
ArrayList<BigInteger> b=new ArrayList<BigInteger>();

for(int j=0;j<2;j++){
    // Stuff
    }
    

각 테스트에 대해 동일한 목록을 재사용하고 있으므로 두 번째 테스트의 값을 첫 번째 테스트의 데이터가 이미 포함 된 목록에 추가합니다.

옵션 :

  • (선호) 각 테스트에 대한 새 목록 만들기
  • 각 테스트를 시작할 때 목록을 지 웁니다.

논리적으로 한 테스트에서 다른 테스트로 목록을 유지하고 싶지 않다는 점을 감안할 때 코드를 다음과 같이 변경합니다.

for(int j = 0; j < 2; j++){
    List<BigInteger> a = new ArrayList<BigInteger>();
        List<BigInteger> b = new ArrayList<BigInteger>();
            // Populate the lists, etc.
            }
            

이 점에 유의 쉽게의 전체 동작을 추출 할 수 있습니다 별도의 방법으로 "일종의 그 데이터를 읽어 크기를 읽기".

또한 루프를 다음과 같이 변경하고 싶다고 생각 합니다.

for(int j = 0; j < testcases; j++) {

... 그렇지 않으면 두 번의 테스트 후에 멈출 것입니다.

Java 7을 사용하는 경우 유형 추론을 사용하여 ArrayList생성을 더 간단 하게 만들 수도 있습니다.

List<BigInteger> a = new ArrayList<>();

... 그리고 " n목록으로 숫자 읽기 "를 별도의 방법으로 추출 하여 코드가 다음과 같이 보일 수도 있습니다.

int size = Integer.parseInt(sc.next());
System.out.println(size);
List<BigInteger> a = readBigIntegers(sc, size);
List<BigInteger> b = readBigIntegers(sc, size);
// Now sort etc.

또한 Scanner.nextInt()명시 적 Integer.parseInt호출 대신 사용 고려 하십시오 .



출처
https://stackoverflow.com/questions/22007806