>Java >java지도 시간 >참조에 의한 전달 없이 Java에서 기본 값을 교환할 수 있습니까?

참조에 의한 전달 없이 Java에서 기본 값을 교환할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-27 08:20:31253검색

 Can You Swap Primitive Values in Java Without Pass by Reference?

Java의 참조에 의한 전달 부족 및 프리미티브 교환에 미치는 영향

Java에서 매개변수를 메소드에 전달하는 것은 값에 따라 수행됩니다. 메서드 내의 매개 변수에 대한 변경 사항은 호출자의 변수에 반영되지 않습니다. 이는 두 기본 형식의 값을 교환하려고 할 때 문제가 됩니다.

값별 전달을 사용하여 기본 형식 교환 시도

Java에서 다음 교환 기능을 고려하세요.

<code class="java">void swap(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}</code>

이 함수는 임시 변수를 생성하고 값을 수동으로 저글링하여 두 정수의 값을 교환하려고 시도합니다. 그러나 이 함수를 호출한 후에는 Java의 값 전달 의미로 인해 원래 값이 변경되지 않은 상태로 유지됩니다.

제한 극복

이 제한을 해결하려면 다음을 사용할 수 있습니다. 매개변수 전달에 대한 Java의 접근 방식을 활용하는 기술입니다. 스왑 함수 내에서 여러 할당을 사용하면 효과적으로 스왑을 달성할 수 있습니다.

<code class="java">int swap(int a, int b) {
    return a;
}

// Usage: y = swap(x, x = y);</code>

이 수정된 버전에서 스왑 함수는 a를 b에 할당한 다음 a를 반환합니다. 그런 다음 호출자는 반환 값을 y에 할당하고 x와 y의 실제 값을 바꿀 수 있습니다.

<code class="java">y = swap(x, x = y);</code>

여러 개체에 대한 일반 스와핑

이 기술은 다음과 같습니다. 동일한 유형의 여러 객체 교환을 지원하도록 일반화되었습니다.

<code class="java"><T> T swap(T... args) {
    return args[0];
}

// Usage: z = swap(a, a = b, b = c, ... y = z);</code>

할당의 순차적 실행과 매개변수 전달에 의존하여 Java에서 객체를 효과적으로 교환할 수 있으며, "참조로 전달" 기능.

위 내용은 참조에 의한 전달 없이 Java에서 기본 값을 교환할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.