문제
내가 작성한 정답
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
char[] chars = my_string.toCharArray();
char a = chars[num1];
char b = chars[num2];
chars[num1] = b;
chars[num2] = a;
// chars에 있는 모든 문자를 사용하여 새로운 문자열을 생성.
// -> chars의 내용을 기반으로 하는 String 객체가 만들어진다.
answer += new String(chars);
return answer;
}
}
다른 사람들이 작성한 정답
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
char[] ch = my_string.toCharArray();
ch[num1] = my_string.charAt(num2);
ch[num2] = my_string.charAt(num1);
answer = String.valueOf(ch);
return answer;
}
}
StreamAPI
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
class Solution {
public String solution(String myString, int num1, int num2) {
List<String> list = Arrays.stream(myString.split("")).collect(Collectors.toList());
// 리스트의 num1과 num2 위치에 있는 요소를 서로 교환
Collections.swap(list, num1, num2);
// 리스트의 요소를 빈 문자열로 구분하여 하나의 문자열로 결합
return String.join("", list);
}
}

Collections
컬렉션 프레임워크와 관련된 다양한 메서드를 제공. 이 클래스는 주로 리스트, 세트, 맵 등과 같은 컬렉션을 조작하는 데 유용한 정적 메서드를 포함하고 있다.
- 정렬: Collections.sort(List<T> list)를 사용하여 리스트를 정렬할 수 있다.
- 검색: Collections.binarySearch(List<? extends Comparable<? super T>> list, T key)를 사용하여 정렬된 리스트에서 이진 검색을 수행할 수 있다.
- 섞기: Collections.shuffle(List<?> list)를 사용하여 리스트의 요소를 무작위로 섞을 수 있다.
- 교환: Collections.swap(List<?> list, int i, int j)를 사용하여 리스트의 두 요소를 교환할 수 있다.
- 최대/최소 값 찾기: Collections.max(Collection<? extends T> coll) 및 Collections.min(Collection<? extends T> coll)를 사용하여 컬렉션에서 최대값과 최소값을 찾을 수 있다.
Share article