package com.java.a;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.junit.Test;
/**
* 增强for循环:实现Iterable接口的都可以使用增强for循环.操作Map的时候需要把Map转为Set.
* 增强for只适合取数据
* @author TS
*/
public class IStrongFor {
/**
* 操作数组
*/
@Test
public void testArr(){
int arrs[] = {1,2,3};
for (int num : arrs) {
System.out.print(num + " ");
}
System.out.println();
}
/**
* 操作List
*/
@Test
public void testList(){
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
for (String str : list) {
System.out.print(str + " ");
}
System.out.println();
}
/**
* 操作Set
*/
@Test
public void testSet(){
Set<String> set = new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
for (String str : set) {
System.out.print(str + " ");
}
System.out.println();
}
/**
* 操作MapOne
*/
@Test
public void testMap(){
Map<String,String> map = new HashMap<>();
map.put("1", "one");
map.put("2", "two");
Set<Entry<String, String>> set = map.entrySet();
for (Entry<String, String> entry : set) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
/**
* 操作MapTwo
*/
@Test
public void testMapTwo(){
Map<String,String> map = new HashMap<>();
map.put("1", "one");
map.put("2", "two");
Set<String> set = map.keySet();
for (String str : set) {
System.out.println(str + ":" + map.get(str));
}
}
/**
* 使用增强for修改数据的问题
*/
@Test
public void testListUpdate(){
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
//在增强for里修改数据,只是把集合引用的String修改了,而集合内容本身没有修改.
//如果需要修改数据就需要通过传统方式修改数据.
for (String str : list) {
str = "123";
System.out.println(str); //==>123
}
System.out.println(list.get(0)); //==>a
}
}
转载于:https://my.oschina.net/tianshuo/blog/644134