关于java中遍历map具体有四种方式,请看下文详解.
①.、这是最常见的并且在大多数情况下也是最可取的遍历方式,在键值都需要时使用.
MapInteger, Integer map = new?HashMapInteger, Integer();
for?(Map.EntryInteger, Integer entry : map.entrySet()) {
System.out.println("Key = "?+ entry.getKey() + ", Value = "?+ entry.getValue());
}
如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet.
for?(Integer key : map.keySet()) {
System.out.println("Key = "?+ key);
for?(Integer value : map.values()) {
System.out.println("Value = "?+ value);
该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净.
使用泛型:
IteratorMap.EntryInteger, Integer entries = map.entrySet().iterator();
while?(entries.hasNext()) {
Map.EntryInteger, Integer entry = entries.next();
不使用泛型:
Map map = new?HashMap();
Iterator entries = map.entrySet().iterator();
Map.Entry entry = (Map.Entry) entries.next();
Integer key = (Integer)entry.getKey();
Integer value = (Integer)entry.getValue();
System.out.println("Key = "?+ key + ", Value = "?+ value);
Integer value = map.get(key);
扩展资料:
①.、HashMap的重要参数
HashMap 的实例有两个参数影响其性能:初始容量 和加载因子.容量是哈希表中桶的数量,初始容量只是哈希表在创建时的容量.
加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度.当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数.
注意,此实现不是同步的. 如果多个线程同时访问一个哈希映射,而其中至少一个线程从结构上修改了该映射,则它必须保持外部同步.
(结构上的修改是指添加或删除一个或多个映射关系的任何操作;以防止对映射进行意外的非同步访问,如下:
Map m = Collections.synchronizedMap(new HashMap(...));
参考资料:百度百科-Hashmap
二维数组定义:数据类型[][] 数组名 = new 数据类型[二维数组行数][二维数组列数]
二维数组的遍历:需要使用两个变量来分别遍历行和列,具体遍历方法就很多啦,可以使用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遍历一个字符串的每一个字母
String str = "asdfghjkl";
方法1:
for(int i=0;istr.length();i++){
char ch = string.charAt(i);
char[] c=s.toCharArray();
for(char cc:c){
...//cc直接用了
String subStr = str.substring(i, i+1)
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,所以呢Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 .
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 .Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 .
参考资料:百度百科:JAVA
随手写了个,会有点bug就是关闭线程池的时候,还有就是有可能目录太多进入拒绝策略,这个东西 可以考虑使用令牌桶算法,或者计数器算法来做.这里提供个简单的例子.
public class TraverseUtil {
public static BlockingQueue blockingQueue = new LinkedBlockingQueue(100);
public static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(100,100,10, TimeUnit.SECONDS,blockingQueue);
File file = new File(path);
if (file.exists()) {
File[] files = file.listFiles();
if (null == files || files.length == 0) {
System.out.println("文件夹是空的!");
return;
} else {
threadPoolExecutor.execute(new Runnable() {
@Override
public void run() {
});
System.out.println("文件不存在!");
public static void main(String[] args) throws InterruptedException {
这是一个表查找,查找表中与customer相等的数据.这个表有[customer,name,phone,....]等字段
这个可以使用递归来实现,具体代码如下:
import java.io.File;
public class Demo {
public static void main(String[] args) {
File file = new File("C:\\");// 指定
文件目录
method(file);
public static void method(File file) {
File[] fs = file.listFiles();// 得到File数组
if(fs!=null) {// 判断fs是否为null
for(File f : fs) {
if(f.isFile()) {// 如果是文件直接输出
System.out.println(f.getName());
method(f);// 否则
递归调用
以上就是土嘎嘎小编为大家整理的JAVA程序遍历代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!