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. 跟我一起写 Makefile(四)

    书写规则 ---- 规则包含两个部分,一个是依赖关系,一个是生成目标的方法. 在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出 ...

  2. FSM自动售货机 verilog 实现及 code 细节讲解

    1.题目: 饮料1.5 元, 可投入硬币1 元 0.5 元,输出饮料 零钱 2. 画出状态机. 3.仿真结果:coin=1 --> 0.5 元 coin=2-->1元 4.关键代码分析: ...

  3. 清理docker常用命令

    0.查看docker占用空间docker system df1.一键删除所有已经停止的容器 docker container prune 2.删除所有容器(包含停止的 正在运行的) docker rm ...

  4. 最详细之教你Jenkins+github自动化部署.Net Core程序到Docker

    环境 centos7.9,.NET5 一.Jenkins搭建 1)下载Jenkins的war包 在\home目录建一个jenkins目录放jenkins的包 #进入\home目录 cd \home # ...

  5. DVWA(五):CSRF 全等级跨站请求伪造

    CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,是指利用受害者尚未失效的身份认证信息(cookie.会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面 ...

  6. 【AI】TorchVision_DataLoad

    From: https://liudongdong1.github.io/ All datasets are subclasses of torch.utils.data.Dataset i.e, t ...

  7. QT从入门到入土(九)——TCP/IP网络通信(以及文件传输)

    引言 TCP/IP通信(即SOCKET通信)是通过网线将服务器Server端和客户机Client端进行连接,在遵循ISO/OSI模型的四层层级构架的基础上通过TCP/IP协议建立的通讯.控制器可以设置 ...

  8. 【springcloud】Zuul高级配置(zuul--3)

    转自:https://blog.csdn.net/pengjunlee/article/details/87285673 为路由提供HystrixFallback 当Zuul中某一个路由的断路器被断开 ...

  9. 十二:Servlet3.0的注解

    1.@WebListener注解 表示的就是我们之前的在xml中配置的 <listener> <listener-class>ListenerClass</listene ...

  10. Linux命令:ps -ef |grep java

    一.ps -ef |grep java 查看包含"java"的所有进程 二.涉及命令详解 ps命令将某个进程显示出来(是LINUX下最常用的也是非常强大的进程查看命令) grep命 ...