对于java中的三大集合的遍历及foreach我做了一个简单的总结,分享一下学习心得。
public static void main(String[] args) {
//list集合
List<String> list=new ArrayList<String>();
list.add("小米");
list.add("华为");
list.add("中兴");
list.add("苹果");
list.add("魅族");
//1、for循环遍历,省列
//2、list独有迭代器遍历集合
ListIterator<String> it=list.listIterator();
while(it.hasNext()) {
System.out.println(it.next());
}
//3、迭代器遍历
Iterator<String> its=list.iterator();
while(its.hasNext()) {
System.out.println(its.next());
}
//Iterator另一种写法
for(Iterator iterator = list.iterator();iterator.hasNext();){
System.out.println(iterator.next());
}
//4、增强for循环
for(String s:list) {
System.out.println(s);
}
System.out.println("-------set--------");
//set集合
Set<String> set=new HashSet<String>();
set.add("张三");
set.add("李四");
set.add("王五");
//将list集合添加到set集合
set.addAll(list);
//1、增强for循环
for(String s:set) {
System.out.println(s);
}
//2、迭代器
Iterator<String> itset=set.iterator();
while(itset.hasNext()) {
System.out.println(itset.next());
}
//迭代器另外一种写法
for(Iterator<String> iterator= set.iterator();iterator.hasNext();) {
System.out.println(iterator.next());
}
System.out.println("-------map集合-----------");
//map集合
Map<Integer, String> map = new HashMap<Integer,String>();
map.put(1, "北京");
map.put(2, "上海");
map.put(3, "南京");
map.put(4, "广州");
map.put(5, "深圳");
//1、增强for循环
Set<Integer> mapset = map.keySet();
for(Integer i:mapset) {
System.out.println(map.get(i));
}
//2、迭代器
Iterator<Integer> itmap = mapset.iterator();
while(itmap.hasNext()) {
System.out.println(map.get(itmap.next()));
}
/* entrySet() 返回此映射中包含的映射关系的 Set 视图
*
* Map.Entry<Integer, String>是一个接口
*/
//3、通过entrySet()方法获得映射关系的 Set 视图,用迭代器遍历
Iterator<Map.Entry<Integer, String>> itentry=map.entrySet().iterator();
while(itentry.hasNext()) {
Map.Entry<Integer, String> entry=itentry.next();
System.out.println(entry.getKey()+"\t"+entry.getValue());
}
//4、通过entrySet()方法获得映射关系的 Set 视图,用增强for循环遍历。推荐,尤其是容量大时
Set<Map.Entry<Integer, String>> entryset=map.entrySet();
for(Map.Entry<Integer, String> entry:entryset) {
System.out.println(entry.getKey()+"\t"+entry.getValue());
}
//简写如下
for(Map.Entry<Integer, String> entry:map.entrySet()) {
System.out.println(entry.getKey()+"\t"+entry.getValue());
}
//5、只遍历值,不能遍历键
for(String value:map.values()) {
System.out.println(value);
}
//foreach循环(增强for循环)遍历数组的总结
//1、foreach循环遍历数组
int [] arr= {1,23,4,32,5,7,99};
for(int i:arr) {
System.out.println(i);
}
///2、foreach循环遍历二数组,n维数组依此类推
int [][] arr1= {{2,34},{5,76,8},{9,5,33,6}};
for(int [] x:arr1) {
for(int y:x) {
System.out.println(y);
}
}
}