차이점: 1. foreach는 루프 수를 알 수 없거나 루프 수를 계산하기 어려울 때 더 효율적이지만 for는 더 복잡한 루프에서 더 효율적입니다. 2. foreach는 루프에서 추가 및 삭제 작업을 지원하지 않습니다. , 배열이나 컬렉션은 수정할 수 없지만 for 루프는 수정할 수 있습니다.
관련 권장 사항: "Java 비디오 튜토리얼"
우선 foreach에 대해 이야기해 보겠습니다. foreach는 실제로 for 루프의 특별하고 단순화된 버전입니다.
foreach의 작성 형식에 대해 이야기해 보겠습니다.
for(元素类型 元素名称 : 遍历数组(集合)(或者能进行迭代的)){ 语句 }
foreach는 for 루프의 단순화된 버전이지만 foreach가 for보다 더 유용하다는 의미는 아닙니다. 루프를 알 수 없거나 루프 수를 계산하는 것이 번거로운 경우도 있지만, 일부 더 복잡한 루프에서는 여전히 for 루프를 사용해야 더 효율적입니다.
다음 예를 살펴보겠습니다.
public static void main(String[] args) { List<String> arr = new ArrayList<String>(); arr.add("你好"); arr.add("我好"); arr.add("大家好"); //foreach循环 for(String str : arr){ //这里的str就是为了获取每次循环的arr中的值 System.out.println(str); //就相当于 String str=arr[i] } }
하지만 이에 비해 for 루프를 사용하여 입력하는 것은 약간 번거롭습니다
public static void main(String[] args) { List<String> arr = new ArrayList<String>(); arr.add("你好"); arr.add("我好"); arr.add("大家好"); //for循环 for(int i=0;i<arr.size();i++){ System.out.println(arr.get(i)); //要获取list中元素需要用get方法 } }
이 일반적인 컬렉션 외에도 map과 같은 키-값 쌍에 사용됩니다.
예:
public static void main(String[] args) { Map<String,String> mapstr = new HashMap<String,String>(); mapstr.put("王", "男"); mapstr.put("李", "男"); mapstr.put("张", "女"); //entrySet方法是为了获取键值对的集合 for(Map.Entry<String, String> s : mapstr.entrySet()){ //这里的Map.Entry<String, String>其实就是一个类型 用来表示键值对的类型 System.out.println("key="+s.getKey()); //这里其实还是相当于 s=maostr.entrySet,只不过s存储的是键值对。 System.out.println("value="+s.getValue()); //所以可以用get方法获取出来存储的键值对。 } }
또한 foreach는 루프에서 삭제 작업 추가를 지원하지 않습니다. 왜냐하면 foreach 루프를 사용할 때 배열(컬렉션)이 이미 잠겨 있어 수정할 수 없기 때문입니다. 그렇지 않으면 java.util.ConcurrentModificationExceptionException
이 보고됩니다.예:
public static void main(String[] args) { List<String> arr = new ArrayList<String>(); arr.add("你好"); arr.add("我好"); arr.add("大家好"); //foreach循环 for(String str : arr){ System.out.println(str); arr.add("1"); //对arr进行添加 } }
요약은 다음과 같습니다.
foreach는 컬렉션이나 배열을 순회하는 데 적합하지만 for는 더 효율적입니다. 더 복잡한 루프에서.
foreach는 배열이나 컬렉션을 수정할 수 없습니다(작업 추가 또는 삭제). 수정하려면 for 루프를 사용해야 합니다.
따라서 for 루프는 이에 비해 더 유연합니다.
위 내용은 Java에서 for와 foreach의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!