网上很多文章都在说增强for循环和foreach循环遍历时不能修改值,只能查看,其实是有区分条件的,不能修改值的是包装类,例如List<String>,引用类型是可以修改值的,例如对象集合。
使用增强for循环或者foreach循环遍历包装类型(如Integer、Double等)和引用类型(如String、自定义对象等)时,它们的处理方式是不同的。
对于包装类型,增强for循环实际上是在遍历其内部数组的副本。因此,你不能在循环中修改原始数组中的元素。
对于引用类型,增强for循环实际上是在遍历对象的引用,你可以修改引用所指向的对象的属性。