黑马程序员技术交流社区

标题: 高级For的个人总结及理解 [打印本页]

作者: 樱空之雪    时间: 2015-4-7 22:16
标题: 高级For的个人总结及理解
高级for循环

格式:for(数据类型 变量名 : 被遍历的集合(Collection)或者数组) { }

对集合进行遍历。只能获取集合元素。但是不能对集合进行操作。

迭代器除了遍历,还可以进行remove集合中元素的动作。

如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。

传统for和高级for有什么区别呢?

高级for有一个局限性。必须有被遍历的目标。

建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。


class ForEachDemo

{ public static void main(String[] args)

{ ArrayList<String> al = new ArrayList<String>();

al.add("abc1");

al.add("abc2");

al.add("abc3");

for(String s : al)

{

//s = "kk";

System.out.println(s);

}

System.out.println(al);

/*

Iterator<String> it = al.iterator();

while(it.hasNext())

{

System.out.println(it.next()); }  */

int[] arr = {3,5,1};

for(int x=0; x<arr.length; x++)

{ System.out.println(arr[x]); }

for(int i : arr)

{ System.out.println("i:"+i); }

HashMap<Integer,String> hm = new HashMap<Integer,String>();

hm.put(1,"a");

hm.put(2,"b");

hm.put(3,"c");

Set<Integer> keySet = hm.keySet();

for(Integer i : keySet)

{ System.out.println(i+"::"+hm.get(i)); }

// Set<Map.Entry<Integer,String>> entrySet = hm.entrySet();

// for(Map.Entry<Integer,String> me : entrySet)

for(Map.Entry<Integer,String> me : hm.entrySet())

{ System.out.println(me.getKey()+"------"+me.getValue()); }

}

}

作者: 黑马杜浔    时间: 2015-4-7 22:32
赞一个!
作者: 俊勇    时间: 2015-4-7 22:42
package cn.itcast_01;

import java.io.File;
import java.io.FilenameFilter;

/*
* 获取指定目录下指定后缀的文件名称:
* A:先获取指定目录下所有文件或者文件夹的File数组,然后再遍历的时候进行判断。满足条件的就输出该File的名称。
* B:直接获取指定目录下满足条件的String(File)数组。然后遍历数组即可。
*
* 文件名称过滤器:FilenameFilter
*                 public String[] list(FilenameFilter filter)
*/
public class FileDemo {
        public static void main(String[] args) {
                // 封装目录
                File file = new File("d:\\");

                // 获取满足条件的数组
                String[] strArray = file.list(new FilenameFilter() {
                        @Override
                        public boolean accept(File dir, String name) {
                                // 判断是否是文件,是否是以.mp4结尾
                                // System.out.println(dir + "---" + name);
                                File file = new File(dir, name); // d:\我的文档
                                boolean flag = file.isFile();
                                boolean flag2 = name.endsWith(".mp4");
                                return flag && flag2;
                        }
                });

                // 遍历字符串数组
                for (String str : strArray) {
                        System.out.println(str);
                }
        }
}



作者: 陈佳    时间: 2015-4-8 16:25
有帮助!
作者: cody    时间: 2015-4-8 20:38
你学习了多长时间 ,感觉 这里面的人都很厉害
作者: 黑色救护车    时间: 2015-4-8 20:40
好样的~学习了~
作者: onlybin2015    时间: 2015-4-8 20:56
很给力 赞一个
作者: 邓士林    时间: 2015-4-8 21:04
赞一个,。。
作者: 菜鸟小A    时间: 2015-4-8 22:04
:handshake:handshake:handshake
作者: 907888614    时间: 2015-4-8 22:08
赞一个!!!
作者: wenhb    时间: 2015-4-8 22:13
新东西啊
作者: lf027    时间: 2015-4-8 22:25
看看多么牛的循环,加强for循环,我们都很喜欢的循环,专门给懒人用的,哈哈
作者: 忆丶残梦顾惜    时间: 2015-4-8 22:26
谢谢分享心得
作者: 君北羽    时间: 2015-4-13 23:05
支持总结,支持分享
作者: woshixtdx    时间: 2015-4-13 23:20
赞一个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2