「java高级遍历」深度遍历 java

博主:adminadmin 2023-01-23 17:45:07 323

今天给各位分享java高级遍历的知识,其中也会对深度遍历 java进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java中怎么遍历map中value值

Java中遍历Map对象的4种方法:

1、通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时。

2、通过Map.keySet遍历key,通过键找值value遍历(效率低),普遍使用,二次取值。

3、如果只需要map中的键或者值,你可以通过Map.keySet或Map.values来实现遍历,而不是用entrySet。在for-each循环中遍历keys或values。

4、通过Map.entrySet使用iterator遍历key和value。

扩展资料:

关于JAVA的遍历知识补充:

1、list和set集合都实现了Iterable接口,所以他们的实现类可以使用迭代器遍历,map集合未实现该接口,若要使用迭代器循环遍历,需要借助set集合。

2、使用EntrySet 遍历,效率更高。

参考资料:

百度百科--Map(映射)

java Map 怎么遍历

关于java中遍历map具体有四种方式,请看下文详解。

1、这是最常见的并且在大多数情况下也是最可取的遍历方式,在键值都需要时使用。

MapInteger, Integer map = new HashMapInteger, Integer();

for (Map.EntryInteger, Integer entry : map.entrySet()) {

System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());

}

2、在for-each循环中遍历keys或values。

如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。

MapInteger, Integer map = new HashMapInteger, Integer();

for (Integer key : map.keySet()) {

System.out.println("Key = " + key);

}

for (Integer value : map.values()) {

System.out.println("Value = " + value);

}

该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。

3、使用Iterator遍历

使用泛型:

MapInteger, Integer map = new HashMapInteger, Integer();

IteratorMap.EntryInteger, Integer entries = map.entrySet().iterator();

while (entries.hasNext()) {

Map.EntryInteger, Integer entry = entries.next();

System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());

}

不使用泛型:

Map map = new HashMap();

Iterator entries = map.entrySet().iterator();

while (entries.hasNext()) {

Map.Entry entry = (Map.Entry) entries.next();

Integer key = (Integer)entry.getKey();

Integer value = (Integer)entry.getValue();

System.out.println("Key = " + key + ", Value = " + value);

}

4、通过键找值遍历(效率低)

MapInteger, Integer map = new HashMapInteger, Integer();

for (Integer key : map.keySet()) {

Integer value = map.get(key);

System.out.println("Key = " + key + ", Value = " + value);

}

假设Map中的键值对为1=11,2=22,3=33,现用方法1来遍历Map代码和调试结果如下:

扩展资料:

1、HashMap的重要参数

HashMap 的实例有两个参数影响其性能:初始容量 和加载因子。容量是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。

加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。

在Java编程语言中,加载因子默认值为0.75,默认哈希表元为101。

2、HashMap的同步机制

注意,此实现不是同步的。 如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须保持外部同步。

(结构上的修改是指添加或删除一个或多个映射关系的任何操作;以防止对映射进行意外的非同步访问,如下:

Map m = Collections.synchronizedMap(new HashMap(...));

参考资料:百度百科-Hashmap

java8 遍历数组的几种方式

list集合的遍历3种方法:

[java] view plaincopy

package com.sort;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

/**

* list的三种遍历

* @author Owner

*

*/

public class ListTest {

public static void main(String[] args) {

ListString list = new ArrayListString();

list.add("a");

list.add("b");

list.add("c");

list.add("c");//可添加重复数据

//遍历方法一

for(IteratorString iterator = list.iterator();iterator.hasNext();){

String value = iterator.next();

System.out.println(value);

}

//遍历方法二

for(String value : list){

System.out.println(value);

}

//遍历方法三

for(int i=0;ilist.size();i++){

System.out.println(list.get(i));

}

}

}

三种遍历的比较分析:

方法一遍历:

执行过程中会进行数据锁定, 性能稍差, 同时,如果你想在循环过程中去掉某个元素,只能调用it.remove方法。

方法二遍历:

内部调用第一种

方法三遍历:

内部不锁定, 效率最高, 但是当写多线程时要考虑并发操作的问题

List接口的两种主要实现类ArrayList和LinkedList都可以采用这样的方法遍历

关于ArrayList与LinkedList的比较分析

a) ArrayList底层采用数组实现,LinkedList底层采用双向链表实现。

b) 当执行插入或者删除操作时,采用LinkedList比较好。

c) 当执行搜索操作时,采用ArrayList比较好。

JAVA7如何遍历一个目录下的所有文件,如何知

1.遍历本目录下所有的文件(不包括目录的目录里的文件)

import java.io.File;public class main { public static void main(String[] args) { String path = "D:\\JAVA"; //要遍历的路径 File file = new File(path); //获取其file对象 File[] fs = file.listFiles(); //遍历path下的文件和目录,放在File数组中 for(File f:fs){ //遍历File[]数组 if(!f.isDirectory()) //若非目录(即文件),则打印 System.out.println(f); } }}

运行结果:

打印出 D:/JAVA下的全部文件(包括D:/JAVA下的目录下的文件)

1.遍历本目录下所有的文件(包括目录的目录里的文件)

import java.io.File;import java.io.FileFilter;public class FileText { public static void main(String[] args) { String path = "D:\\JAVA"; //要遍历的路径 File file = new File(path); //获取其file对象 func(file); } private static void func(File file){ File[] fs = file.listFiles(); for(File f:fs){ if(f.isDirectory()) //若是目录,则递归打印该目录下的文件 func(f); if(f.isFile()) //若是文件,直接打印 System.out.println(f); } }}

打印结果:

打印所有文件

Java 如何遍历数组里面的数据?

二维数组定义:数据类型[][] 数组名 = new 数据类型[二维数组行数][二维数组列数]

如:int[] array = new int[5][4];

二维数组的遍历:需要使用两个变量来分别遍历行和列,具体遍历方法就很多啦,可以使用while语句、do-while语句、for语句,也可以相互结合使用。

如:

int i = 0, j = 0;

for(int i = 0; i  array.length; i++){

for(int j = 0; j  array[i].length; j++){

System.out.println(array[i][j] + "、");

}

System.out.println("");

}

java高级遍历的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于深度遍历 java、java高级遍历的信息别忘了在本站进行查找喔。