java学习笔记21(迭代器)
java中有很多集合,内部有各种的存储的方法,取出的方法也各不相同,那么有没有一种通用的方法来取出来呢?
java提供的遍历集合元素的方法有两种:
1.for-each结构(增强型for循环)
格式: for(Object obj:collection)System.out.println(obj);//表示一行输出一个元素 用法举例:
import java.util.ArrayList; public class Demo2 {
public static void main(String[] args) {
forlxDemo();
}
private static void forlxDemo(){
ArrayList<String> arr=new ArrayList();
arr.add("abc");
arr.add("def");
arr.add("ghi");
for (String s : arr) {//增强性for循环,优点:代码少了,方便遍历,缺点:没有下标,无法操作集合的元素
System.out.println(s);
}
}
}
2.iterator(迭代器)
迭代器:Iterator接口,翻译成中文是迭代器;典型用法如下
Iterator it = c.iterator();//用于创建一个迭代器对象
while (it.hasNext()) {//it.hasNext()判断迭代器中是否有下一个元素,如果有返回true。Iterator中的next方法返回迭代其中的下一个元素
Object next = it.next();//取出下一个元素
}
举例说明:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class Demo1 {
public static void main(String[] args) {
IteratorDemo();
} private static void IteratorDemo() {
//集合可以指定存储类型,也可以不写
//集合中可以存储任意类型的对象,但是只能存储同一种类型的
Collection c=new ArrayList();
c.add("hello");
c.add("java");
Iterator it = c.iterator();//用于创建一个迭代器对象
while (it.hasNext()) {//it.hasNext()判断迭代器中是否有下一个元素
String str = (String) it.next();//it.next()默认返回Object类型,强转为String类型
/*if(str.equals("hello")){//迭代器的并发异常,不允许在迭代过程中,修改集合,这段代码会报错,
c.add("world");
}*/
System.out.println(str);
}
}
}
java学习笔记21(迭代器)的更多相关文章
- Java学习笔记21(String类补充:正则表达式)
正如python的re模块,不过Java和Python的正则表达式有一些区别,这里做简单介绍,具体的细节可以参考网上其他的文章: 功能:可以用于检验一个字符串,比如验证用户名,验证密码格式,验证是否是 ...
- Thinking in java学习笔记之迭代器
Map<String,String> map = new HashMap<String,String>(); List list = new ArrayList(); list ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 20145330第十周《Java学习笔记》
20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- java学习笔记13--比较器(Comparable、Comparator)
java学习笔记13--比较器(Comparable.Comparator) 分类: JAVA 2013-05-20 23:20 3296人阅读 评论(0) 收藏 举报 Comparable接口的作用 ...
- java学习笔记11--集合总结
java学习笔记系列: java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Ob ...
随机推荐
- stl中的for_each() 函数的注意事项
#include<iostream> using namespace std; #include"vector" #include"algorithm&quo ...
- Oracle11g温习-第十七章:权限管理
2013年4月27日 星期六 10:50 1.权限(privilege): [system privilege(系统权限):针对于database 的相关权限 object p ...
- 数据结构与算法之PHP用邻接表、邻接矩阵实现图的广度优先遍历(BFS)
一.基本思想 1)从图中的某个顶点V出发访问并记录: 2)依次访问V的所有邻接顶点: 3)分别从这些邻接点出发,依次访问它们的未被访问过的邻接点,直到图中所有已被访问过的顶点的邻接点都被访问到. 4) ...
- MySQL5.6复制技术(4)-MySQL主从复制过滤参数
复制的过滤主要有2种方式: 在主服务器在把事件从进二制日志中过滤掉,相关的参数是:binlog_do_db和binlog_ignore_db. 在从服务器上把事件从中继日志中过滤掉,相关的参数是re ...
- git status 查看当前修改文件
可以查看当前已经修改的文件.
- 微信小程序 HMACSHA256 哈希加密
下载CryptoJS, 增加红色的这句 module.exports = CryptoJS /* CryptoJS code.google.com/p/crypto-js (c) 2009-2012 ...
- JSP调试技巧
我先谈谈: 我的经验就是多装几个服务器,这个查不出错误,用另一个,这个方法很好用. ---------------------------------------------------------- ...
- zabbix3.4.7之Zabbix_Trigger_Function详解
Trigger函数 1.abschange 参数:直接忽略后边的参数 支持值类型:float.int.str.text.log 描述:返回最近获取到的值与之前值的差值的绝对值.对于字符串类型,0表示值 ...
- POJ 1035 Spell checker 字符串 难度:0
题目 http://poj.org/problem?id=1035 题意 字典匹配,单词表共有1e4个单词,单词长度小于15,需要对最多50个单词进行匹配.在匹配时,如果直接匹配可以找到待匹配串,则直 ...
- Values & Reference:值和引用
var a = 2; var b = a; //b 是 a 的值的一个副本 b++; a; b; var c = [1, 2, 3]; var d = c; // d 是 值[1, 2, 3]的一个引 ...