Collection集合遍历数组的三种方式:
  1. 迭代器
  2. foreach(增强for循环)
  3. JDK1.8之后的新技术Lambda
迭代器:
方法:public Iterator inerator():获取集合对应的迭代器,用来遍历
E next():获取下一个元素值
boolean hasNext():判断是否有下一个元素,有返回true,反之
流程:1.获取集合对应迭代器
Iterator it = lists.iterator
2.定义一个while循环,it.next()取出元素,it.hasnext()询问判断
public class IteratorDemo {
public static void main(String[] args) {
Collection<String> lists=new ArrayList<>();
lists.add("zyl");
lists.add("xyy");
lists.add("huy");
System.out.println(lists); Iterator<String> it=lists.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
}
}

ListIterator<E> listIterator():列表迭代器
                是List特有的迭代器,该迭代器继承了Iterator,所以也有hasNext()和next()方法
     特有功能:
                E previous() 返回列表中的上一个元素,并向后移动光标位置。
                boolean hasPrevious() 返回 true如果遍历反向列表,列表迭代器有多个元素。
      注意:如果想要逆序遍历,必须先正序遍历一次,才能逆序遍历,一般情况下无意义,一般不使用

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator; public class ArrarListDemo4 {
public static void main(String[] args) {
List lists=new ArrayList();
lists.add("1gfggfg");
lists.add("2fetgrg");
lists.add("3ouoiho");
lists.add("4iiiou"); ListIterator lt = lists.listIterator();
while (lt.hasNext()){
lt.next();
}
while(lt.hasPrevious()){
Object o = lt.previous();
String s = (String) o;
System.out.println(s);
} }
}
 
foreach:可以遍历集合或数组
格式:for(被遍历集合或者数组中元素的类型 变量名称 : 被遍历集合或数组)
快捷键:被遍历数组 . for
缺点:foreach遍历无法知道遍历到哪个元素,因为没有索引
public class ForeachDemo1 {
public static void main(String[] args) {
Collection<String> lists=new ArrayList<>();
lists.add("yuyu");
lists.add("zyl");
lists.add("xyy");
lists.add("huy");
System.out.println(lists); for(String s:lists){
System.out.println(s);
} } }
Lambda:
1.list.forEach(s->{
System.out.printlin(s);
});
2.lists.forEach(s -> System.out.println(s));
3.lists.forEach(System.out::println)
 
 
For循环通过 int size()和 E get(int index)遍历集合
import java.util.ArrayList;
import java.util.List; public class ArrayListDemo5 {
public static void main(String[] args) {
List lists=new ArrayList();
lists.add("1gfggfg");
lists.add("2fetgrg");
lists.add("3ouoiho");
lists.add("4iiiou"); for (int i=0;i<lists.size();i++){
System.out.println(lists.get(i));
}
}
}
 Map集合遍历元素的三种方式
1 .键找值方式
2 .键值对方式
3 .Lamda表达式
 
键找值方式
1.获取Map中所有的值,由于键是唯一的,所以返回一个Set集合存储所有的值。keyset()
2.遍历Set集合,得到每个键
3.根据键,获取键所对应的值。get(K key)
public class MapDemo2 {
public static void main(String[] args) {
Map<String,Integer> maps=new HashMap<>();
maps.put("iphoneX",10);
maps.put("娃娃",30);
maps.put("iphoneX",100);// Map集合后面重复的键对应的元素会覆盖前面重复的整个元素!
maps.put("huawei",1000);
maps.put("生活用品",10);
maps.put("手表",10); Set<String> keys = maps.keySet();
System.out.println(keys);

// Iterator<String> it=keys.iterator();
// while (it.hasNext()){
// String key = it.next();
// Integer value=maps.get(key);
// System.out.println(key+"="+value);
// }
for (String key : keys) {
Integer value=maps.get(key);
System.out.println(key+"="+value);
}
}
}

Entry键值对对象:

public Set<Map .Entry< K, V>> entrySet();获取到Map集合中所有键值对对象的集合(Set集合)

public class MapDemo3 {
public static void main(String[] args) {
Map<String,Integer> maps=new HashMap<>();
maps.put("iphoneX",10);
maps.put("娃娃",30);
maps.put("iphoneX",100);
maps.put("huawei",1000);
maps.put("生活用品",10);
maps.put("手表",10); Set<Map.Entry<String,Integer>> entries=maps.entrySet();
for(Map.Entry<String,Integer> entry:entries){
String key=entry.getKey();
Integer value=entry.getValue();
System.out.println(key+"="+value);
}
}
}

Lambda:

public class MapDemo4 {
public static void main(String[] args) {
Map<String,Integer> maps=new HashMap<>();
maps.put("iphoneX",10);
maps.put("娃娃",30);
maps.put("iphoneX",100);
maps.put("huawei",1000);
maps.put("生活用品",10);
maps.put("手表",10); maps.forEach((k,v)->{
System.out.println(k+"="+v);
});
}
}
 
 
 
 
 
 
 
 

集合遍历数组三种常用方式(Collecton和Map)的更多相关文章

  1. Map集合遍历的四种方式理解和简单使用-----不能for循环遍历

    Map集合遍历的四种方式理解和简单使用   ~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后 ...

  2. Map接口中的常用方法和Map集合遍历键找值方式

    Map接口中定义了很多方法,常用的如下: public V put(K key,V value) 将指定的值与此映射中的指定键相关联(可选操作) V remove(Object key); 如果此映射 ...

  3. Java基础进阶:学生管理系统数组方式分包源码实现,教师管理系统集合和数组两种方式源码实现,图书馆管理系统源码实现,现附重难点,代码实现源码,课堂笔记,课后扩展及答案

    1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...

  4. Struts2的OGNL遍历数组、List、简单的Map

    一.简介 <s:iterator />可以遍历 数据栈里面的任何数组,集合等等 在使用这个标签的时候有三个属性值得我们关注      1. value属性:可选的属性,value属性是指一 ...

  5. Java:JSTL遍历数组,List,Set,Map

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  6. 【Javascript】JS遍历数组的三种方法:map、forEach、filter

    前言 近一段时间,因为项目原因,会经常在前端对数组进行遍历.处理,JS自带的遍历方法有很多种,往往不加留意,就可能导致知识混乱的现象,并且其中还存在一些坑.前端时间在ediary中总结了js原生自带的 ...

  7. java集合遍历的几种方式总结及比较

    集合类的通用遍历方式, 用迭代器迭代: Iterator it = list.iterator(); while(it.hasNext()) { Object obj = it.next(); }   ...

  8. Map集合遍历的四种方式理解和简单使用

    ~Map集合是键值对形式存储值的,所以遍历Map集合无非就是获取键和值,根据实际需求,进行获取键和值 1:无非就是通过map.keySet()获取到值,然后根据键获取到值 for(String s:m ...

  9. Entry键值对对象和Map集合遍历键值对方式

    我们已经知道,Map中存放的是两种对象,一种称为key(键),一种称为value(值),它们在在IMap 中是一一对应关系, 这一对对象又称做Map 中的一个Entry(项).Entry将键值对的对应 ...

随机推荐

  1. JavaSE-基础语法

    注释 单行注释: //注释 多行注释: /*注释*/ 文档注释: /** 文档注释 */ 标识符与关键字 下图为Java中所有的关键字 所有标识符必须以大小写字母或$或_开头,首字母之后可以用数字 不 ...

  2. Adaptive AUTOSAR 学习笔记 15 - 持久化 Persistency

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf.作者:Zijian/TENG 原文地 ...

  3. STM32—驱动GY85-IMU模块

    GY85是一个惯性测量模块,内部集成了三轴加速度计.三轴陀螺仪.电子罗盘.气压传感器等芯片,用于测量和报告设备速度.方向.重力,模块可以将加速度计.陀螺仪.电子罗盘等传感器的数据进行综合,在上位机可以 ...

  4. 云原生的弹性 AI 训练系列之二:PyTorch 1.9.0 弹性分布式训练的设计与实现

    背景 机器学习工作负载与传统的工作负载相比,一个比较显著的特点是对 GPU 的需求旺盛.在之前的文章中介绍过(https://mp.weixin.qq.com/s/Nasm-cXLtJObjLwLQH ...

  5. noip25

    T1 经过一波大力推式子,发现答案是 \(\frac{n^{2}-1}{9}\) . 式子回头再补,可能会 Code #include<cstdio> #define re registe ...

  6. NOIP 模拟 $30\; \rm 毛一琛$

    题解 \(by\;zj\varphi\) 如何判断一个集合可以被拆成两个相等的部分? 枚举两个集合,如果它们的和相等,那么他们的并集就是合法的,复杂度 \(\mathcal O\rm(3^n)\) \ ...

  7. 题解 Smooth

    传送门 咕了蚯蚓这题+前一天被蚊子折腾了半宿没睡=全场几乎就我这题分最低-- 发现这里光滑数是不断乘出来的--记得这是一个很经典的套路,然而当时我咕了 求一个每个值都是 \(\{p_i\}\) 中至少 ...

  8. 配置之XML--读取XML文件 转存为Key-Value

    将XML文件读取 绑定数据至Dictionary Eg: Xml文件 <?xml version="1.0" encoding="utf-8" ?> ...

  9. 【mysql】截取查询分析

    1. 慢查询日志 1.1 是什么 (1)MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL ...

  10. 关于腾讯云redis 无法外网访问的解决方案

    问题简介: 今天购买了一台腾讯云的redis:如图 可是我没有找到 腾讯云提供的外网地址,我该怎么连接呢?百度了一大堆 全部是 在腾讯云服务器上搭建的Redis实例的解决办法.完全不匹配. 开始解决: ...