栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中List、Set、Map、Queue和Stack栈集合的遍历

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中List、Set、Map、Queue和Stack栈集合的遍历

一、List的遍历

        在集合类中,List是最基础的一种集合:它是一种有序列表。List的行为和数组几乎完全相同:List内部按照放入元素的先后顺序存放,每个元素都可以通过索引确定自己的位置,List的索引和数组一样,从0开始 ,特点是有序允许重复。

public class List_bianli {
	public static void main(String[] args) {
		List arrayList = new ArrayList();
		arrayList.add("stu1");
		arrayList.add("stu2");
		arrayList.add("stu3");
		arrayList.add("stu4");
		arrayList.add("stu5");
		// 方法一:for each循环主要用于遍历数组或集合中的元素
		for (String s : arrayList) {
			System.out.println(s);
		}
		System.out.println("-----------");
		//方法二: Iterator主要用于迭代访问(即遍历)Collection中的元素
		Iterator it = arrayList.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
		}
		//方法三:List的get(index)方法,返回集合index处的元素
		System.out.println("-----------");
		for (int i = 0; i < arrayList.size(); i++) {
			System.out.println(arrayList.get(i));
		}
}
}
二、Set的遍历

        Set实际上相当于一个只存储key、不存储value的特殊Map。放入Set的元素和Map的key特点类似,不允许重复。常用的Set实现类是HashSet,特点是无序唯一。

public class Set_bianli {
	public static void main(String[] args) {
		Set hashSet = new HashSet();
		hashSet.add("010");
		hashSet.add("025");
		hashSet.add("013");
		hashSet.add("020");
		hashSet.add("029");
		// 方式一:for each循环
		for (String x : hashSet) {
			System.out.println(x);
		}
		System.out.println("-------------");
		// 方式二:迭代器
		Iterator it = hashSet.iterator();
		while(it.hasNext()) {
			String x = it.next();
			System.out.println(x);
		}
	}
}

总结:集合元素的遍历,最好用foreach();

三、Map的遍历

        Map是一种键-值映射表,当我们调用put(K key, V value)方法时,就把key和value做了映射并放入Map。当我们调用V get(K key)时,就可以通过key获取到对应的value。如果key不存在,则返回null。和List类似,Map也是一个接口,最常用的实现类是HashMap。

public class Map_bianli {
	public static void main(String[] args) {
		Map hashMap = new HashMap();
		hashMap.put("stu1", 85);
		hashMap.put("stu2", 87);
		hashMap.put("stu3", 75);
		hashMap.put("stu4", 99);
		hashMap.put("stu5", 95);

		// 方法一:通过Map的键的迭代遍历Map集合的键
		// 再通过get()方法根据键获取对应的值(效率低)
		Set keySet = hashMap.keySet(); // 先获取hashMap键的集合
		Iterator it = keySet.iterator();
		while (it.hasNext()) {
			Object key = it.next();
			System.out.println(key + " = " + hashMap.get(key));
		}
		System.out.println("-----------");
        //方法二:for each()
        for (String key : hashMap.keySet()) {
             Integer value = hashMap.get(key);
             System.out.println(key + " = " + value);
        }
        //方法三:同时遍历key和value可以使用for each循环遍历Map对象的entrySet()集合,它包含每      
        // 一个key-value映射
        for (Map.Entry entry : hashMap.entrySet()) {
             System.out.println(entry.getKey() + " = " + entry.getValue());
        }
}
}

        总结:方法三是最简洁最通用的遍历方式

四、Queue的遍历

        队列Queue是一种经常使用的集合,线性表结构,遵循先入先出、后入后出的基本原则,一般来说,它只允许在集合的前端进行删除操作,而在集合的后端进行插入操作。

        注:LinkedList既实现了List接口,又实现了Queue接口。所以,在使用的时候,如果我们把它当作List,就定义List的引用;如果我们把它当作Queue。

public class Queue_bianli {
	public static void main(String[] args) {
		Queue queue = new LinkedList();		
		queue.offer("E");
		queue.offer("D");
		queue.offer("C");
		queue.offer("B");
		queue.offer("A");
		System.out.println(queue);		
		//方法一:for each只是遍历没有出队
		for(String s:queue) {
			System.out.println(s);
		}
		System.out.println("-----------");
		//方法二:for循环,遍历的同时进行出队操作
		int size = queue.size();
		for(int i=0;i 
五、Stack的遍历 

        栈(Stack)的后进先出(LIFO:Last In First Out),只能不断地往Stack中压入(push)元素,最后进去的必须最早弹出(pop)

 

        所以,Stack只有入栈和出栈的操作: ○ 把元素压栈:push(E) ○ 把栈顶的元素“弹出”:pop() ○ 取栈顶元素但不弹出:peek()。

public class Stack_bianli {

	public static void main(String[] args) {
		Stack stack = new Stack();
		stack.push("A1");
		stack.push("A2");
		stack.push("A3");
		stack.push("A4");
		stack.push("A5");
		// 方法一:只是遍历
		for (String s : stack) {
			System.out.println(s);
		}
		System.out.println("-------------");

		//方法二:遍历并逐一出栈
		while (!stack.isEmpty()) {
			System.out.println(stack.pop());
		}
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874740.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号