集合遍历
1.ArrayList五种遍历方式
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
/**
* 通过add方法向元素中添加数据
* 并将指定位置的索引进行打印
* 以及对分数进行遍历
*/
public class TestArrayList {
public static void main(String[] args) {
ArrayList array=new ArrayList();
//jdk1.5之前 add()方法里面是不可以直接添加基本数据类型的
//jdk1.5之后 采取了自动装箱和自动拆箱功能,可以直接添加基本数据类型,转化的步骤是编译器为我们做的
array.add(18);
array.add(3);
array.add(36);
array.add(48);
array.add(88);
//获取指定位置的分数
System.out.println(array.get(3));
//通过引用数据类型的创建方式 jdk1.5之前可以这样做
array.add(new Integer(99));
//第一种循环方式:通过for循环遍历输出元素
System.out.println("for========================");
for (int i=0;i<array.size();i++){
System.out.println(i+" "+array.get(i));
}
//第二种循环方式:通过for-each循环遍历输出元素
System.out.println("for-each========================");
for (Object list:array) {
System.out.println(list);
}
//第三种循环方式:通过while循环遍历输出元素
System.out.println("while========================");
//定义一个计数器
int count=0;
while(count<array.size()){
System.out.println(array.get(count));
count++;
}
第四种循环方式:使用迭代器的方式进行循环遍历
ArrayList 内部具有一个Itr内部类,而该类实现了Iterator接口,也就拥有了Iterator接口中的方法。 hasNext()判断是否有下一个元素;next()返回要访问的下一个元素 ;remove()通过迭代器删除元素中的数据。
//第四种循环方式:使用迭代器的方式进行循环遍历
System.out.println("Iterator========================");
Iterator it=array.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
第五种方式:ListIterator类
如果使用ListIterator这种方式进行遍历,切记倒序遍历之前,一定要跟在正序遍历之后,否则倒序遍历不出现结果。且正序遍历和倒序遍历共用同一个ListIterator对象。
//第五种循环方式:ListIterator类
System.out.println("ListIterator类正序排序========================");
ListIterator listIterator=array.listIterator();
while (listIterator.hasNext()){
System.out.println(listIterator.next());
}
//第五中排序方式:ListIterator类倒序排序
System.out.println("ListIterator类倒序排序========================");
while (listIterator.hasPrevious()){
System.out.println(listIterator.previous());
}
}
}
2.set集合中三个实现类的遍历(hashSet、linkedHashSet、TreeSet)
import java.util.*;
/**
* 使用对Set类进行 查询String类中的课目元素
* set完全继承了Collection类 没有进行其他补充 所以不能使用索引来进行查询
* set有两种循环方式 第一种for-each
*/
public class TestHashSet1 {
public static void main(String[] args) {
//唯一 无序 底层使用了哈希表
Set<String> set=new HashSet<String>();
//向集合中添加课目信息
set.add("java");
set.add("python");
set.add("jsp");
//唯一 有序 添加顺序 底层使用了哈希表和链表
Set<String> set1=new LinkedHashSet<String>();
//按照添加的顺序进行排序
set1.add("ps");
set1.add("android");
set1.add("python");
set1.add("javaScript");
//唯一 有序 自然顺序 底层使用了红黑二叉树
Set<String> set2=new TreeSet<String>();
//按照自然顺序进行排序
set2.add("ps");
set2.add("android");
set2.add("python");
set2.add("javaScript");
//第一种方式:
System.out.println("for-each循环hashSet类中的数据==========================");
for (String setList:set) {
System.out.println(setList);
}
System.out.println("for-each循环LinkendHashSet类中的数据==========================");
for (String setList1:set1) {
System.out.println(setList1);
}
System.out.println("for-each循环TreeSet类中的数据==========================");
for (String setList2:set2) {
System.out.println(setList2);
}
System.out.println();
// 第二种使用迭代器 iterator
//创建迭代器对象
Iterator<String> iterator=set.iterator();
System.out.println("使用迭代器iterator循环遍历hashSet类中的数据===============");
while (iterator.hasNext()){
String em=iterator.next();
System.out.println(em);
}
System.out.println("使用迭代器iterator循环遍历LinkendHashSet类中的数据===============");
iterator=set1.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
System.out.println("使用迭代器iterator循环遍历TreeSet类中的数据===============");
iterator=set2.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
3.map集合中三个实现类的遍历(hashMap、linkedHashMap、TreeMap)
import java.util.*;
/**
* 国家简写个全称
*/
public class TestMap {
public static void main(String[] args) {
//创建map对象 唯一 无序
HashMap<String,String> map=new HashMap<String,String>();
//添加元素
map.put("cn","China");
map.put("us","the United States");
map.put("jp","Japan");
map.put("uk","the United Kingdom");
map.put("us","America");
map.put("en","the United Kingdom");
System.out.println(map.size()); //获取元素的个数
System.out.println(map.get("us")); //获取对应key键的value数据
System.out.println(map.keySet()); //获取key键的集合
System.out.println(map.values()); //获取value中的值信息
System.out.println("===============================");
//for循环遍历
Set<String> keySet= map.keySet();
for (String key:keySet) {
System.out.println(key+" "+map.get(key));
}
//iterator迭代器循环 通过entrySet()方法,返回一个Set集合
Set<Map.Entry<String,String>> enntry=map.entrySet();
//通过set集合调用迭代器
Iterator<Map.Entry<String, String>> integer=enntry.iterator();
while (integer.hasNext()){
Map.Entry<String,String> k=integer.next();
System.out.println(k.getKey()+"--------"+k.getValue());
}
}
}
集合中的遍历练习总结,暂时到此结束。
谢谢您的观看,如有提议请在评论区留言。