Foreach 루프의 반복 변수 할당
Java에서 foreach 루프는 컬렉션 반복을 위한 간결한 구문을 제공합니다. 그러나 루프 내에서 반복 변수를 수정할 때 일반적인 오해가 발생합니다. 다음 코드를 고려해 보세요.
String boss = "boss"; char[] array = boss.toCharArray(); for(char c : array) { if (c == 'o') c = 'a'; } System.out.println(new String(array)); // Prints "boss"
이 코드가 예상되는 "bass" 대신 "boss"를 인쇄하는 이유는 무엇입니까?
이 동작을 이해하려면 foreach 루프가 다음에서 작동한다는 것을 인식하는 것이 중요합니다. 요소 자체가 아닌 컬렉션 요소의 복사본입니다. 반복 변수(이 경우 c)는 배열에 있는 현재 요소의 로컬 복사본일 뿐입니다. c를 수정해도 배열의 원래 문자는 수정되지 않습니다.
배열 요소를 수정하려면 다음과 같이 인덱스를 통해 요소에 명시적으로 액세스해야 합니다.
for (int i = 0; i <p>이 코드는 문자를 배열 요소에 직접 수정하여 원하는 "bass" 출력을 얻습니다.</p><p>요약하자면, foreach 루프로 작업할 때 반복 변수는 컬렉션 요소의 로컬 복사본. 기본 데이터를 수정하려면 인덱스를 통해 요소에 명시적으로 액세스하고 배열에서 직접 수정을 수행하세요.</p>
위 내용은 Java For-Each 루프에서 반복 변수를 수정해도 원래 배열이 변경되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

JSONOBJECT를 사용할 때 일관성을 보장하는 방법 및 데이터 직렬화를 위해 맵을 맵핑하는 방법은 무엇입니까? JSON 데이터를 처리 할 때 시퀀스에 대한 다른 방법을 사용하여 발생할 수 있습니다 ...

Java 개발에서 Java 정규 표현식으로 특정 텍스트를 추출하기위한 팁은 종종 많은 양의 텍스트 데이터에서 관심있는 부분을 추출해야합니다. 정기적인...

Ruoyi 버전 개발 프로젝트를 사용할 때 Ruoyi 버전 백엔드에서 프론트 엔드 데이터를 얻는 문제와 관련하여, 종종 프론트 엔드에서 데이터를 얻고 백엔드에 들어가는 문제가 발생합니다 ...

Java에서 엔티티 클래스 주석 매개 변수를 동적으로 구성하는 방법은 무엇입니까? Java 개발에서 우리는 종종 다른 환경에 따라 특정 매개 변수를 동적으로 구성해야 할 필요성에 직면합니다.

Netty를 사용하여 WebSocket 서버를 개발할 때는 브라우저가 연결하려고 할 때 서버가 반환 한 401 상태 코드를 올바르게 처리하지 못하는 상황을 만날 수 있습니다. � ...

Java 컴파일 실패 : 실행 창 Javac 명령을 생성 할 수 없습니다. 수업 파일을 생성 할 수 없습니다.

백엔드 개발에서 계층 적 아키텍처 문제에 대해 논의합니다. 백엔드 개발에서 일반적인 계층 적 아키텍처에는 컨트롤러, 서비스 및 DAO가 포함됩니다.

Java의 패키지 및 디렉토리 : Java 개발의 컴파일러 오류의 논리는 종종 패키지 및 디렉토리에 문제가 발생합니다. 이 기사는 자바를 깊이 탐구 할 것입니다 ...


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
