2017-12-16 4 views
-5

arraylist에서 가장 큰 문자열 (사전 식) 위치를 반환해야하는 코딩 클래스에 문제가 있습니다. 나는이 문제를 어디서부터 시작해야할지 아무런 단서가 없다.>가장 큰 문자열의 위치를 ​​사전 식 ArrayList (Java)

+0

먼저 IDE를 열고 코딩하십시오. 특정 문제 나 질문이 있으면 여기에서 언제든지 물어보십시오. 게시하기 전에 https://stackoverflow.com/help/how-to-ask도 확인하십시오. 행운을 빕니다! –

+1

아마 사람들이 학교 코드를 제공하는 것을 주저하게 될 것이므로 학교 질문을 게시하는 것이 가장 좋은 생각은 아닙니다. 가장 많이 알려진 문자열에 대한 참조로 String 변수를 사용하면됩니다. ArrayList에 대해 반복하고 현재 반복되는 문자열이 현재 저장된 최대 알려진 문자열보다 큰 경우 변수를 업데이트하십시오. – Zachary

+0

http://idownvotedbecau.se/noattempt/ --- *** 시작하기에 좋은 곳은 모든 값을 반복하는 루프를 작성하는 것입니다. [Streams] (https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html#package.description)를 사용하려는 경우가 아니라면 당신을위한 범위. – Andreas

답변

0

Comparator 클래스는리스트에 매우 깔끔하게 명령을 내릴 수있게 해준다.

List<String> data = new ArrayList<>(); 
data.sort(Comparator.comparing(String::length).reversed()); 
data.get(0); // Will return the largest String 

이렇게하면 String length() 메서드를 사용하여 List를 정렬하고 가장 큰 문자열을 먼저 정렬하도록 순서를 바꿉니다. 하위 정렬을 추가하면 묶음이 끊기는 방식 (객체가 동일하게 비교 됨)을 결정할 수 있습니다. 이렇게하려면 중요도 순서대로 데이터를 정렬하십시오.

data.sort(Comparator.comparing(String::hashCode)); 
data.sort(Comparator.comparing(String::length).reversed()); 

hashCode() 메서드를 사용하여 length()를 사용하여 정렬합니다. 이것은 길이에 의한 정렬의 효과를 가지며, 여기서 관계는 hashCode (일반적으로 객체를 고유하게 차별화하려고 시도 함)에 의해 손상됩니다.

관련 문제