迭代器一般和泛型数组ArrayList,泛型链表LinkList配合使用,达到顺序遍历的效果.
先来看看下面两段代码:解释写在代码注释里了
private ArrayList<String> getChecked() { /** * ArrayList<PhotoItem>用来存放图片信息 */ private ArrayList<PhotoItem> mPhotolist = null; /** * new一个ArrayList<String>,用来存放文件的地址path */ ArrayList<String> list = new ArrayList<String>(); /** * 给mPhotolist加上迭代器,对它进行顺序遍历操作,这里是关键!it只是一个迭代器对象 */ Iterator<PhotoItem> it = mPhotolist.iterator(); while (it.hasNext()) { /** * 把遍历得到的PhotoItem类型对象赋值给PhotoItem类型对象temp */ PhotoItem temp = it.next(); if (temp.isChecked) { String path = getRealPath(temp.ImageID); if (path != null) { list.add(path); } } } return list; }
@Override protected void onResume() { List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>(); Iterator<Mp3Info> iterator = mp3Infos.iterator(); while (iterator.hasNext()) //for (Iterator iterator = mp3Infos.iterator(); iterator.hasNext();) { Mp3Info mp3Info = iterator.next(); HashMap<String, String> map = new HashMap<String, String>(); map.put("mp3_name", mp3Info.getMp3Name()); map.put("mp3_size", mp3Info.getMp3Size()); list.add(map); } }
第二段代码其实和第一段代码所实现的功能是一样的,大家可以参考一下,作个比较!