总结for循环及for循环增强遍历数组,list,set和map
一.对于集合
(1)普通for循环
int[] arr = { 2, 1, 2 };
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
(2)for循环增强
int[] arr = { 2, 1, 2 };
for (int i : arr) {
System.out.println(i);
}
System.out.println("********************");
//二维数组
int [][]arr1={{2,1,3},{1,2,5}};
for(int []i:arr1){
for(int j:i){
System.out.println(j);
}
}
二.对于list,list是一个接口,有很多实现它的类,例如ArrayList,LinkedList,Vector。
(1)使用普通的for循环和迭代器
List<String> list=new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//普通的遍历
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println("****************");
//使用迭代器
Iterator<String> iterator=list.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
(2)使用for循环增强
for(String s:list){
System.out.println(s);
}
(3)在java8中增加了一种方式,可以调用forEachRemaining方法遍历元素(标准库中的任何集合都可以),参数是lambda表达式。下面的同理。
iterator.forEachRemaining(i->System.out.println(i));
三.对于set接口,有很多实现它的类,HashSet(无序),LinkedHashSet(有序)
(1)使用迭代器。注意set没有get()方法!!!
Set<String> set=new HashSet<>();
set.add("a");
set.add("b");
set.add("c");
Iterator<String> iterator=set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
(2)使用for循环增强
for(String s:set){
System.out.println(s);
}
四.对于map接口,有很多实现它的类,HashMap,LinkedHashMap,HashTable。以键值对的形式存放
(1)使用迭代器,有两种方式
Map<String,String> map=new HashMap<>();
map.put("1", "aa");
map.put("2", "bb");
map.put("3", "cc");
//方法1:使用迭代器,取keySet()
Iterator<String> iterator=map.keySet().iterator();
while(iterator.hasNext()){
String key=iterator.next();
String value=map.get(key);
System.out.println("key="+key+" value="+value);
}
//方法2:使用迭代器,取entrySet()
Iterator<String> iterator2=map.entrySet().iterator();
while(iterator2.hasNext()){
Map.Entry<String, String> entry=(Map.Entry<String,String>)iterator2.next();
System.out.println(entry.getKey()+" "+entry.getValue());
}
(2)增强for循环,对上面2种方法改写
//方法1
for(String s:map.keySet()){
System.out.println(s+" "+map.get(s));
}
//方法2使用增强for,entrySet()
for(Map.Entry me:map.entrySet()){
System.out.println(me.getKey()+" "+me.getValue());
}
(3)使用forEach方法
map.forEach((k, v) ->
System.out.println("key=" + k + ", value=" + v));
总结for循环及for循环增强遍历数组,list,set和map的更多相关文章
- 学JAVA第九天,for循环算质数及for遍历数组的方法。
昨天终于收到了评论,老开心了!!! 算质数之前是我最怕的一件事,以前上学不好好学,之前学C#的时候也没好好研究, 直到今天老师逼我要用JAVA算质数,硬着头皮琢磨老半天才琢磨透,现在看来也挺简单的. ...
- JS遍历数组的操作(map、forEach、filter等)
1.map的用法 定义:原数组被“映射”成对应新数组 代码示例: var users = [ {name: "张含韵", "email": "zhan ...
- 程序控制结构及for循环、foreach循环、迭代器
结构化程序设计 三种基本控制结构:顺序结构.选择结构.循环结构. 在这种思想的指导下,发展出了面向过程编程方式.面向过程编程的核心是算法+数据结构.算法可以用顺序.选择.循环这三种基本控制结构来实现. ...
- php中利用reset,current,next和each,list来遍历数组
1.利用for循环以及reset,current,next来遍历数组: $nums = array(11,22,33,44,55,66,77,88); for(reset($nums);current ...
- IT兄弟连 Java语法教程 数组 使用foreach循环遍历数组元素
从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁.使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据 ...
- *使用while循环遍历数组创建索引和自增索引值
package com.chongrui.test;/* *使用while循环遍历数组 * * * */public class test { public static void main ...
- 浅析PHP中for与foreach两个循环结构遍历数组的区别
遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法.用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论.所谓管中窥豹,多少能理清一点两者的区 ...
- 使用for循环遍历数组
package review20140419;/* * 遍历数组 */public abstract class Test1 { //程序入口 public static void mai ...
- sqlserver中的循环遍历(普通循环和游标循环)
sql 经常用到循环,下面介绍一下普通循环和游标循环 1.首先需要一个测试表数据Student
随机推荐
- (博弈论)51NOD 1066 Bash游戏
有一堆石子共有N个.A B两个人轮流拿,A先拿.每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出N和K,问最后谁能赢得比赛. 例如N = 3 ...
- 公司4:JrVue主题定制
JrVue是我们基于element重新封装的一套组件库; 具体组件使用方法可以mnote->研发小组查看; 这里我们定制了一套主题色, 具体变动如下: 1.主题色变动: mfront有蓝.紫. ...
- tablespace monitor shell for windows
1. #! /bin/ksh #set -x SID=$1 ORACLE_SID=stat10gORACLE_HOME=/oracle10g/product/10.2PATH=$PATH:/usr/b ...
- 全面学习ORACLE Scheduler特性(4)创建和管理Schedule
三.使用Schedules 10g 中新推出的SCHEDULER可能确实会让很多初接触的朋友感觉晕头晕脑,相比之前的jobs,SCHEDULER中新增的概念太多.比如说jobs,仍然可以理解成之前版本 ...
- data和string类型之间的相互转换
package main; import java.text.SimpleDateFormat;import java.util.Date; import freemarker.core.ParseE ...
- RS485通信和Modbus协议(转)
转自:http://www.51hei.com/bbs/dpj-23230-1.html 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换.最初采用的方式是RS232接 ...
- [ POI 2005 ] Bank Notes
\(\\\) Description 给出 \(N\) 种货币的面值 \(b_i\) 和个数 \(c_i\) ,求最少需要用多少个硬币凑出 \(Q\) 元钱,并输出任意一种方案. \(n\le 200 ...
- Js变量类型
值类型和引用类型 值类型(基本类型):5种,Number String Boolean null undefined var a=10; var b=a; a=2; console.log(b); a ...
- Linux学习笔记之Linux命令
1. blkid 查看当前系统中所有已挂载文件系统的类型
- DOM节点例子
elementNode.setAttribute(name,value) 1.name: 要设置的属性名. 2.value: 要设置的属性值. elementNode.getAttribute(nam ...