Java中的不同遍历方式
已知一个Person类:
public class Person implements Comparable<Person>{
String name;
String id;
public Person(String name,String id) {
this.name=name;
this.id=id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public boolean equals(Object o) {
if(!(o instanceof Person)) {
return false;
}
Person person=(Person) o;
return this.id.equals(person.id);
}
@Override
public int compareTo(Person o) {
if(o==null)
return ;
return this.id.compareTo(o.id);
} public String toString() {
return String.format("%s-%s", name,id);
} public int hasCode() {
return id.hashCode();
}
}
1、遍历HashMap的不同方法:
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set; import difficult.Person;
public class HashMapDemo {
public static void main(String[] args) {
Map<String, Person> map=new HashMap<>();
Person p1=new Person("张三", "");
map.put(p1.getId(), p1);
map.put("", new Person("", "李四"));
map.put("", new Person("", "王五"));
System.out.println(map); System.out.printf("%s-%s\n","",map.get(""));
//增强型for,元素类型为Entry<String,Person>
for(Entry<String, Person> entry:map.entrySet()) {
System.out.printf("%s-%s ",entry.getKey(),entry.getValue());
}
System.out.println();
//利用set来遍历
Set<String> keys=map.keySet();
for(String key:keys) {
Person value=map.get(key);
System.out.printf("%s-%s ",key,value);
}
System.out.println();
}
}
2、遍历list的不同方法
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import difficult.Person; public class IterateList { public static void main(String[] args) {
List<Person> persons = new ArrayList<>();//,List为一个接口,定义一个泛型为Person的ArrayList表
Person p = new Person("1001", "张三"); persons.add(p);
persons.add(p);
persons.add(new Person("1002", "李四"));
persons.add(new Person("1003", "王五"));
persons.add(new Person("1004", "沈六")); //遍历1:下标
int len=persons.size();
for(int i=0;i<len;i++) {
Person person=persons.get(i);
System.out.print(person+"\t");
}
System.out.println();
//遍历2:迭代器
Iterator<Person> iterator=persons.iterator();
while(iterator.hasNext()) {
Person person=iterator.next();
System.out.print(person+"\t");
}
System.out.println(); //遍历3:增强型for
for(Person person:persons) {
System.out.print(person+"\t");
}
System.out.println(); int[] data= {1,3,5,7,9};
for(int dat:data) {
System.out.print(dat+"\t");
}
}
}
3、利用向量(通过枚举)遍历list
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.Vector; import difficult.Person; public class VectorAndList { public static void main(String[] args) {
List<Person> persons = new ArrayList<>();
Person p = new Person("1001", "张三"); persons.add(p);
persons.add(p);
persons.add(new Person("1002", "李四"));
persons.add(new Person("1003", "王五"));
persons.add(new Person("1004", "沈六")); // 遍历二:迭代器
Iterator<Person> iterator=persons.iterator();
while(iterator.hasNext()) {
Person person=iterator.next();
System.out.print(person+"\t");
}
System.out.println(); //向量
Vector<Person> vector=new Vector<>();
vector.addAll(persons);
//通过枚举遍历
Enumeration<Person> enu=vector.elements();
while(enu.hasMoreElements()) {
Person person=enu.nextElement();
System.out.print(person+"\t");
}
System.out.println(); }
}
Java中的不同遍历方式的更多相关文章
- Java 中数组的遍历方式
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 语言中提供的数组是用来存储固定大小的同类型元素. 今天我们就来说一下在java中遍历数组都有哪几 ...
- Java集合01----ArrayList的遍历方式及应用
Java集合01----ArrayList的遍历方式及应用 前面已经学习了ArrayList的源代码,为了学以 ...
- JS 和 Java 中URL特殊字符编码方式
前几天遇到url特殊字符编码的问题,在这里整理一下: JavaScript 1. 编码 escape(String) 其中某些字符被替换成了十六进制的转义序列. 解码 unescape(String ...
- Java中数组的初始化方式
Java中数组的初始化方式 初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组 ...
- 原码,补码,反码的概念及Java中使用那种存储方式
原码,补码,反码的概念及Java中使用那种存储方式: 原码:原码表示法是机器数的一种简单的表示法.其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示 补码:机器数的补码可由原码得到.如果机器 ...
- Java中实现线程的方式
Java中实现线程的方式 Java中实现多线程的方式的方式中最核心的就是 run()方法,不管何种方式其最终都是通过run()来运行. Java刚发布时也就是JDK 1.0版本提供了两种实现方式,一个 ...
- Java(8)中List的遍历方式总结
本篇文章主要讲述了List这一集合类型在Java,包括Java8中的遍历方式,不包括其他的过滤,筛选等操作,这些操作将会在以后的文章中得到提现,由List可以类推到Set等类似集合的遍历方式. pub ...
- Java中反射的实现方式
所谓反射,是指在运行时状态中,获取类中的属性和方法,以及调用其中的方法的一种机制.这种机制的作用在于获取运行时才知道的类(Class)及其中的属性(Field).方法(Method)以及调用其中的方法 ...
- Java中四种遍历Map对象的方法
方法一:在for-each循环中使用entry来遍历,通过Map.entrySet遍历key和value,这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. Map<Int ...
随机推荐
- 我不是机器人:谷歌最新版验证码系统ReCaptcha破解已开源
选自 Github 作者:George Hughey 机器之心编译 每个人都讨厌验证码,这些恼人的图片中包含你必须输入的字符,我们只有正确地填写才能继续访问网站.验证码旨在确认访问者是人还是程序,并防 ...
- selenium怎么操作web页面常见的元素
总结一下selenium怎么操作web页面常见的元素. 主要有: 上传 alter dialog prompt dialog confirm dialog select list radio box ...
- SpringBoot获取配置文件的自定义参数
1.在application.properties中自定义参数 spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datas ...
- python之路第二天
为何要有操作系统 为了让程序员更轻松的完成命令电脑工作而存在的,控制硬件,服务于软件. 操作系统的位置 操作系统位于软件和硬件之间.操作系统由内核(运行于内核态,控制硬件)和系统调用(运行于用户态,为 ...
- ps和AI使用过程中的易错点整理
ps:1.视图工具:1)标尺2)参考线3)网格:视图-->--显示>-->网格4)修改网格:编辑-->首选项>-->参考线.网格和切片 5)放大工具:画布中单击可放 ...
- (转)一位资深程序员大牛给予Java初学者的学习路线建议
Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每 ...
- java读取pdf和MS Office文档
有时候PDF中的文字无法复制,这可能是因为PDF文件加密了,不过使用PDFBox开源软件就可以把它读出来. 还有一个用于创建PDF文件的项目----iText. PDFBox下面有两个子项目:Font ...
- HDU 1671 Phone List (qsort字符串排序与strncmp的使用 /字典树)
Phone List Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 【C++ Primer | 11】关联容器(一)
在multimap或multiset中查找元素 第二种方法解释: #include <iostream> #include <utility> #include <ite ...
- 437. 路径总和 III
方法一:48 ms /* sumUp递归子程序求解以root为根节点的子节点之和为sum的路径数目; pathSum递归部分是把根节点逐一考察,如以root->left,以root->ri ...