一.对于集合

(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的更多相关文章

  1. 学JAVA第九天,for循环算质数及for遍历数组的方法。

    昨天终于收到了评论,老开心了!!! 算质数之前是我最怕的一件事,以前上学不好好学,之前学C#的时候也没好好研究, 直到今天老师逼我要用JAVA算质数,硬着头皮琢磨老半天才琢磨透,现在看来也挺简单的. ...

  2. JS遍历数组的操作(map、forEach、filter等)

    1.map的用法 定义:原数组被“映射”成对应新数组 代码示例: var users = [ {name: "张含韵", "email": "zhan ...

  3. 程序控制结构及for循环、foreach循环、迭代器

    结构化程序设计 三种基本控制结构:顺序结构.选择结构.循环结构. 在这种思想的指导下,发展出了面向过程编程方式.面向过程编程的核心是算法+数据结构.算法可以用顺序.选择.循环这三种基本控制结构来实现. ...

  4. 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 ...

  5. IT兄弟连 Java语法教程 数组 使用foreach循环遍历数组元素

    从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁.使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据 ...

  6. *使用while循环遍历数组创建索引和自增索引值

    package com.chongrui.test;/* *使用while循环遍历数组 *  *  * */public class test {    public static void main ...

  7. 浅析PHP中for与foreach两个循环结构遍历数组的区别

    遍历一个数组是编程中最常见不过的了,这里跟大家讨论下for和foreach两种方法.用这两种方法执行遍历的场景太多太多了,这里我们只针对以下两个数组作为例子来讨论.所谓管中窥豹,多少能理清一点两者的区 ...

  8. 使用for循环遍历数组

    package review20140419;/* * 遍历数组 */public abstract class Test1 {    //程序入口    public static void mai ...

  9. sqlserver中的循环遍历(普通循环和游标循环)

    sql 经常用到循环,下面介绍一下普通循环和游标循环 1.首先需要一个测试表数据Student

随机推荐

  1. INT类型知多少

    前言: 整型是MySQL中最常用的字段类型之一,通常用于存储整数,其中int是整型中最常用的,对于int类型你是否真正了解呢?本文会带你熟悉int类型相关知识,也会介绍其他整型字段的使用. 1.整型分 ...

  2. [转]C语言字符串操作总结大全(超详细)

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

  3. VMWare虚拟网络编辑

    VMWare虚拟网络编辑记录. 点击"编辑->虚拟网络编辑器" 在网卡列表中选择"VMnet8"查看目前设置,点击右下角的更改设置进行网络修改. 备注:更 ...

  4. jmeter生成时间的函数

    在一个接口测试中,需要提交的请求中要带时间,在看完jmeter帮忙文档,正好总结一下 1.需求 在一个http请求中请求数据要带有时间,如下: 2.实现 突然想到jmeter自带的函数助手好像是可以实 ...

  5. 242 Valid Anagram 有效的字母异位词

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词.例如,s = "anagram",t = "nagaram",返回 true ...

  6. [转]MVC4项目中验证用户登录一个特性就搞定

    本文转自:http://www.mrhuo.com/Article/Details/470/A-Attribute-For-MVC4-Project-Used-To-Validate-User-Log ...

  7. C#WinForm的DataGridView控件显示行号

    public void ShowIndex(DataGridView dgv)        {                       for (int i = 0; i < dgv.Ro ...

  8. 专题五:TCP编程

    前言 前面专题的例子都是基于应用层上的HTTP协议的介绍, 现在本专题来介绍下传输层协议——TCP协议,主要介绍下TCP协议的工作过程和基于TCP协议的一个简单的通信程序,下面就开始本专题的正文了. ...

  9. Python学习笔记之默认参数

    函数定义时 参数定义的顺序必须是:必选参数.默认参数.可变参数和关键字参数. def test(a,b,c=1,*d,**e) pass

  10. key-value键值型数据库:Redis

    key-value键值型数据库:Redis redis Redis是in-memory型(内存型)的键值数据库,数据在磁盘上是持久的,键类型是字符串,值类型是字符串.字符串集合(Set).sorted ...