详解Java中list,set,map的遍历与增强for循环
详解Java中list,set,map的遍历与增强for循环
Java集合类可分为三大块,分别是从Collection接口延伸出的List、Set和以键值对形式作存储的Map类型集合。
关于增强for循环,需要注意的是,使用增强for循环无法访问数组下标值,对于集合的遍历其内部采用的也是Iterator的相关方法。如果只做简单遍历读取,增强for循环确实减轻不少的代码量。
集合概念:
1.作用:用于存放对象
2.相当于一个容器,里面包含着一组对象,其中的每个对象作为集合的一个元素出现
3.java的容器有集合类和数组,不同之处是
区别及其常用实现类
List接口:
列表有序元素可重复
实现类:ArrayList:动态数组列表
LinkedList:双向链表
Set接口:
集无序,元素不可重复
实现类:HashSet:散列集
TreeSet:树集内部排序
Map接口:
以键值对的方式存储数据数据-键不允许重复
实现类:HashSet:散列集
TreeSet:树集内部排序
JDK1.0出现的集合类都是线程安全的,但效率低
JDK1.2出现的集合类都不是线程安全的,但效率高
代码示例如下:
importjava.util.ArrayList;
importjava.util.HashSet;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Set;
publicclassListAndSet{
publicstaticvoidmain(String[]args){
setTest();
listTest();
}
//遍历Set集合
privatestaticvoidsetTest(){
Set<string>set=newHashSet<string>();
set.add("A");
set.add("B");
set.add("C");
set.add("D");
set.add("E");
//set集合遍历方法1:使用iterator
Iterator<string>it=set.iterator();
while(it.hasNext()){
Stringvalue=it.next();
System.out.println(value);
}
//set集合遍历方法2:使用增强for循环。
for(Strings:set){
System.out.println(s);
}
}
//遍历list集合
privatestaticvoidlistTest(){
List<string>list=newArrayList<string>();
list.add("111");
list.add("222");
list.add("333");
list.add("444");
list.add("555");
//遍历方式1:使用iterator
Iterator<string>it=list.iterator();
while(it.hasNext()){
Stringvalue=it.next();
System.out.println(value);
}
//遍历方法2:使用传统for循环进行遍历。
for(inti=0,size=list.size();i<size;i++){
Stringvalue=list.get(i);
System.out.println(value);
}
//遍历方法3:使用增强for循环进行遍历。
for(Stringvalue:list){
System.out.println(value);
}
}
}
//关于Map类型集合的遍历,keySet()与entrySet()方法
//增强For循环
publicclassMap{
publicstaticvoidmain(String[]args){
//创建一个HashMap对象,并加入了一些键值对。
Map<string,string="">maps=newHashMap<string,string="">();
maps.put("111","111");
maps.put("222","222");
maps.put("333","333");
maps.put("444","444");
maps.put("555","555");
//传统的遍历map集合的方法1;keySet()
//traditionalMethod1(maps);
//传统的遍历map集合的方法2;entrySet()
//traditionalMethod2(maps);
//使用增强For循环来遍历map集合方法1;keySet()
//strongForMethod1(maps);
//使用增强For循环来遍历map集合方法2;entrySet()
strongForMethod2(maps);
}
privatestaticvoidstrongForMethod2(Map<string,string="">maps){
Set<entry<string,string="">>set=maps.entrySet();
for(Entry<string,string="">entry:set){
Stringkey=entry.getKey();
Stringvalue=entry.getValue();
System.out.println(key+":"+value);
}
}
privatestaticvoidstrongForMethod1(Map<string,string="">maps){
Set<string>set=maps.keySet();
for(Strings:set){
Stringkey=s;
Stringvalue=maps.get(s);
System.out.println(key+":"+value);
}
}
//使用entrySet()方法,获取maps集合中的每一个键值对,
privatestaticvoidtraditionalMethod2(Map<string,string="">maps){
Set<map.entry<string,string="">>sets=maps.entrySet();
//取得迭代器遍历出对应的值。
Iterator<entry<string,string="">>it=sets.iterator();
while(it.hasNext()){
Map.Entry<string,string="">entry=(Entry<string,string="">)it.next();
Stringkey=entry.getKey();
Stringvalue=entry.getValue();
System.out.println(key+":"+value);
}
}
//使用keySet()方法,获取maps集合中的所有键,遍历键取得所对应的值。
privatestaticvoidtraditionalMethod1(Map<string,string="">maps){
Set<string>sets=maps.keySet();
//取得迭代器遍历出对应的值。
Iterator<string>it=sets.iterator();
while(it.hasNext()){
Stringkey=it.next();
Stringvalue=maps.get(key);
System.out.println(key+":"+value);
}
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!