본문 바로가기

java

Java에서 목록의 두 요소 교환

이 게시물은 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의 두 요소를 교환하는 것입니다.