>source

나는 ArrayList를 연습하고 있고, 나는 목록을 정렬하는 방법을 생성하려고했다. > 모든 유형의 t (t는 정수, 문자열 또는 어쩌면 다른 것일 수 있습니다).

비교 가능한 인터페이스를 구현 한 해당 클래스에서 정렬이 작동합니다.

예상 : 클래스 T (동적으로 매개 변수에서 동적으로 오는)가 비교할 수있는 경우 정렬이 작동합니다.

실제 : 정렬이 나에게 편집 오류를 주면 여기에 갇혀 있습니다.

방법 정렬 (List < t는 비교 가능한 < ~을 빼앗아가는 것 슈퍼 T ≫ > ) 유형 컬렉션에서 인수 (목록) 에 적용되지 않습니다.

정렬은 목록의 유형을 미리 정의 할 것으로 예상되기 때문입니다 (정수 또는 문자열과 같은).하지만 프로그램이 실행될 때까지 정의되지 않은 것입니다.

이는 MAIN ()이 (마지막 줄에 초점) 인 경우입니다.

public static void main(String[] args) {
        arrayListFunctions= new ArrayListFunctions();
        List<Integer> al= new ArrayList<Integer>();
        //Imagine adding some integers...
        //This line is where it begins
        arrayListFunctions.sortList(al);
    }

이것은 ArrayListFunctions.SortList (Al); 가 포인트를 가리 킵니다.

<T> List<T> sortList(List<T> input) {
        if (input instanceof Comparable) {
            input= Collections.sort(input);
            System.out.println("List is sorted.");
            printUsingIterator(input);
        }
        else
            System.out.println("Failed to sort as type of list is not comparable.");
        return input;
    }

  • 답변 # 1

    모든 요소가 있는지 확인할 수 있습니다.명부a.유사한그리고 사용목록 # 정렬...에

    <T> List<T> sortList(List<T> input) {
        if (input.stream().allMatch(Comparable.class::isInstance)) {
            input.sort(null);
            System.out.println("List is sorted.");
        } else
            System.out.println("Failed to sort as type of list is not comparable.");
        return input;
    }
    

    나는 input.sort (null)를 알아야합니다. 그것이 일하기에 충분했다. 이 우수한 솔루션을 주셔서 감사합니다.

    Arpan Kush2021-04-20 07:10:18
  • 이전 excel : VBA code는 수식이 포함 된 셀의 삭제를 방지합니다
  • 다음 GitHub Readme의 이미지로 URL을 연결하는 방법?