이 게시물은 Java에서 List의 두 요소를 바꾸는 방법에 대해 설명합니다.
1. 사용 Collections.swap() 방법
목록의 두 요소를 교환하는 표준 솔루션은 다음을 사용하는 것입니다. Collections.swap() 목록의 지정된 위치에 있는 요소를 교환하는 메서드입니다.
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class Main
{
public static void main(String[] args)
{
List<String> words = Arrays.asList("a", "c", "b", "d");
Collections.swap(words, 1, 2);
System.out.println(words);
}
}
결과 : [a, b, c, d]
어레이을 바꾸려면 어레이이 지원하는 고정 크기 목록을 가져와서 어레이에 전달할 수 있습니다. Collections.swap() 방법. 목록은 어레이에 의해 뒷받침되기 때문에 목록에 대한 모든 변경 사항은 어레이에서도 볼 수 있습니다.
import java.util.Arrays;
import java.util.Collections;
class Main
{
public static void main(String[] args)
{
String[] words = {"a", "c", "b", "d"};
Collections.swap(Arrays.asList(words), 1, 2);
System.out.println(Arrays.toString(words));
}
}
결과 :
[a, b, c, d]
기본 어레이의 경우 Arrays.asList() 방법이 작동하지 않지만 다음을 사용할 수 있습니다. Ints.asList() Guava 라이브러리에서 제공하는 방법.
import com.google.common.primitives.Ints;
import java.util.Arrays;
import java.util.Collections;
class Main
{
public static void main(String[] args)
{
int[] nums = {1, 3, 2, 4};
Collections.swap(Ints.asList(nums), 1, 2);
System.out.println(Arrays.toString(nums));
}
}
.
결과 :
[1, 2, 3, 4]
2. 임시 변수 사용
목록에서 두 값을 교환하는 또 다른 일반적인 솔루션은 교환을 위한 고유한 일반 유틸리티 함수를 만드는 것입니다. 이것은 Java에서 다음과 같이 수행할 수 있습니다.
import java.util.Arrays;
import java.util.List;
class Main
{
public static final <T> void swap(List<T> list, int i, int j) {
T temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
public static void main(String[] args)
{
List<String> words = Arrays.asList("a", "c", "b", "d");
swap(words, 1, 2);
System.out.println(words);
}
}
결과 :
[a, b, c, d]
다음은 어레이에 대해 동일한 방식으로 수행하는 방법입니다.
import java.util.Arrays;
class Main
{
public static final <T> void swap(T[] arr, int i, int j) {
T temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void main(String[] args)
{
String[] words = {"a", "c", "b", "d"};
swap(words, 1, 2);
System.out.println(Arrays.asList(words));
}
}
결과 :
[a, b, c, d]
이것은 Java에서 List의 두 요소를 교환하는 것입니다.
'java' 카테고리의 다른 글
자바 람다(Lambda) 기초부터 사용방법 정리 (0) | 2023.04.29 |
---|---|
자바 스트림(Stream) 예제부터 사용법까지 정리 (1) | 2023.04.29 |
[Java] split 점(.)으로 하기 점으로 스플릿 안됨 (0) | 2022.07.12 |
[Java] 코모란(Komoran) 형태소분석기 사용하기 (0) | 2022.06.16 |
[Java] 문자열 붙이기(Concat, StringBuffer(Append)) 사용법 & 예제 (0) | 2021.06.10 |