java中的遍历方式:

在java中总会遇到遍历,或许是数组,或许是集合,而数组是有限的长度,但是在集合中呢?理想中只要你的内存足够,就可以存取你想要的任何长度。

但是再说到遍历,可以分为遍历一个有序的集合或者无序的集合或者数组,下面我们就看下对于它们两者之间的不同遍历方式。

1.使用传统的for循环:

我们通常把对有下标的简单的遍历,结构为:for(起始条件;终止条件;更改起始条件){      }形如:

1 //创建的一个数组

2 int[] arr= {1,2,3,4,5,6,7,8,9};3

4 for(int i=0;i<=arr.length;i++){5 System.out.println(arr[i]);6 }7

在这种简单的for循环中,可以根据下标获取相对应的值.通常使用在数组或者有序的集合中。

2.使用增强型for循环,结构为:for( 接收循环的数据类型  值:需要循环的对象){    }

对于上面的数组遍历,也可以使用增强型循环;形如 :

for(inta:arr) {

System.out.println(a);

}

可以看出增强型循环不需要下标值,可以直接遍历出数组中的元素;通常我们使用增强型循环来遍历一个集合,该集合可以是没有下标的或者有下标的.

3.使用迭代器.但是需要说明的是,迭代器的使用只能在集合中使用.其实对集合的遍才是我写这篇文章的主要目的

集合有Connlection  、Map  这两个类型的集合都是接口类型

Connlection中的子接口有List ,然而list有实现类 ArrayList

①.对于Arraylist 使用迭代器进行遍历

1 ArrayList list=new ArrayList<>();2 list.add("jeremy");3 list.add("张三");4 list.add("李四");5

6

7 Iterator iterator=list.iterator();//调用Arraylist中的迭代器方法8 //返回的是Iterator 类型

9

10

11 while(iterator.hasNext()) { //hasNext() 方法 判断迭代器中是否有可以迭代的元素12 //并将指针下移

13 Object item=iterator.next();14 System.out.println(item);15

16 }

②对于set的遍历

//和list 集合中的遍历方法一致 区别在于set集合没有顺序//不可以根据下标获得

Set set=new HashSet<>();

set.add("jeremy");

set.add("张三");

set.add("李四");//使用iterator 遍历

Iterator< String > iterator=set.iterator();while(iterator.hasNext()) {

Object object=iterator.next();

System.out.println(object);

}//可以使用foreach循环遍历

for(String item:set) {

System.out.println(item);

}

}

当然,没有增强型循环 foreach可以使用在list中

③对于map的遍历

map的存储格式为键1----值 1,键2-----值2.  可根据get(key)方法 来取得值,key 为键

并且map也是一个无序 的集合  ,map没有自带的iterator()方法,     要遍历map,除了使用foreach

我们需要使用一个''中间人''. map中有一个方法为keyset();可以得到键,返回一个Set对象.

//创建一个map

Map map=new HashMap<>();//添加数据

map.put("name", "jeremy");

map.put("name1", "张三");

map.put("name3", "李四");//使用set作为中间人 接收键名

Set set=map.keySet();//调用set中的迭代器

Iterator< String > iterator=set.iterator();while(iterator.hasNext()) {

Object object=iterator.next();//根据健名获得键值

System.out.println(object+"-----"+map.get(object));

}

还有一种迭代器是Iterator的子接口LIstIterator,但是这种迭代器中用在有序的集合中,

它们之间的区别为:

ListIterator是Iterator的子接口。

Iterator它的遍历只能从前往后来迭代元素。只能对迭代器列表进行删除操作,

ListIterator可以从前往后,也可以从后往前来进行迭代。可以对迭代器列表进行删除,添加,修改的操作。可以获取迭代器列表的索引。

java中遍历是什么意思_java中的遍历总结与不同.相关推荐

  1. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  2. java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思

    Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...

  3. java中的case1怎么说_Java 中的 CAS 简述及原理解析

    一.CAS 是什么? CAS(Compare And Swap),比较并交换,它是一条CPU并发原语.它的功能是判断内存某个位置的值是否为预期值,如果是则更新为新的值,这个过程是原子的.1 publi ...

  4. java 内存溢出和内存泄漏_JAVA中的内存溢出和内存泄漏有很大的区别

    JAVA中的内存溢出和内存泄漏分别是什么,有什么联系和区别,我谈谈自己的理解. 内存泄漏(memory leak ):申请了内存不释放,比如100m的内存,分配了10m的内存一直不回收,那么可以用的内 ...

  5. java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?

    小编典典 Java中的本机方法是什么,应在哪里使用? 一旦看到一个小例子,就很清楚了: Main.java : public class Main { public native int intMet ...

  6. java中为什么要用注解_java中的注解,真的很重要,你理解了嘛?

    这篇文章开始讲解java中的注解,在平时的开发当中我相信你或多或少的接触过注解.比如你可能都见过@override,它代表的就是一个注解.但是,为了更加清晰的去介绍注解,我还是先给出一个例子,让你能够 ...

  7. java中volatile关键字的含义_java中volatile关键字的含义

    转自:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html 在java线程并发处理中,有一个关键字volatile的使用目前存 ...

  8. java中容易混淆的方法_java中容易混淆的区别

    本文会随时更新一些java中容易混淆的关键字或者知识点,如有偏见之处,望留言! final和static的差别: 1,final的英语意思"最后的",在java中修饰类,方法和变量 ...

  9. java中String类是什么_Java中字符串的学习(一)String类的概述及常见方法使用

    转载请注明出处http://www.cnblogs.com/devtrees/p/4347079.html (拓展:Api:编程语言对外给我们提供的应用程序接口.) 一.概述: 我们平时上网发帖,帖子 ...

  10. java怎样将日期本土化_Java中的日期操作

    在日志中常用的记录当前时间及程序运行时长的方法: public void inject(Path urlDir) throws Exception { SimpleDateFormat sdf = n ...

最新文章

  1. Go 学习笔记(49)— Go 标准库之 io/ioutil(读写文件、获取目录下的文件和子目录、创建临时目录和文件)
  2. codeforces 8C. Looking for Order 状压dp
  3. python用matplotlib画人口图_Python+Matplotlib画contour图
  4. Python编程专属骚技巧5
  5. 如何在vmware虚拟机下挂载windows硬盘
  6. 20元以上200元以下罚款的交通违法行为
  7. srpm包的编译方式
  8. iphone全部机型_iPhone 上新,首次明确支持中国北斗
  9. 海龟交易法则06_掌握优势
  10. 【数据结构】思维导图补充知识
  11. [转载] Python字典的setdefault()方法
  12. mysql数据类型详解系列
  13. oracle rpad()函数
  14. eclipse连接sql数据库
  15. Flutter 静态挂载腾讯X5WebView(Tbs)浏览器内核
  16. xmpp 即时通讯
  17. spring注释原理
  18. RCP中设置view和editor的tilte字体
  19. 大学物理复习笔记:刚体力学基础,动量矩
  20. 知识图谱的相关技术-概览(笔记)

热门文章

  1. Electron log4js 配置
  2. Java语言有哪些特点
  3. MTK内置语音信箱号码
  4. checkbox取值 php_php 如何获取复选框checkbox的值
  5. Docker 安装一些软件命令
  6. 2021年化工自动化控制仪表考试题及化工自动化控制仪表证考试
  7. PageRank、图计算、图存储的两种方式
  8. 杭州, 一个商业城市状元秀
  9. 我的新博客不断更新中
  10. shell 发邮件命令之 mail