Java集合、集合内常用方法、如何遍历Set、List、Map

不知道你是否像我一样,写题的时候经常不知道选什么样的数据类型来存储数据,有时候选好了数据类型(比如LinkedList),又不知道该数据类型下面包含哪些方法,每次都特别痛苦。

那么整理一下吧。

Java集合整体框架
Java集合整体框架
Java集合
Java集合

在这里插入图片描述

一. 遍历Map的方式

在这里传送门

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class HashMapTraversal {
    public static void main(String[] args){
        HashMap<Integer, Integer> map = new HashMap<>();
        map.put(3, 6);
        map.put(2, 5);
        Traversal01(map);
        Traversal02(map);
        Traversal03(map);
        Traversal04(map);
        Traversal05(map);
 
    }
    // entrySet() 用for循环拿到entry
    public static void Traversal01(HashMap<Integer, Integer> map){
        for(Map.Entry<Integer, Integer> entry : map.entrySet()){
            System.out.println(entry.getKey()+" " +entry.getValue());
        }
 
    }
    // keySet() 用for循环拿到key
    public static void Traversal00(HashMap<Integer, Integer> map){
        for(Integer key : map.keySet()){
            Integer 
            System.out.println(entry.getKey()+" " +entry.getValue());
        }
 
    }
    // 单独拿到keys(用keySet())  或者单独拿到values(map.values())
    public static void Traversal02(HashMap<Integer, Integer> map){
        for(Integer key: map.keySet()){
            System.out.println(key);
        }
        for(Integer value : map.values()){
            System.out.println(value);
        }
    }
    // keySet拿到key,get一下就可以在同一个for循环内拿到value
    public static void Traversal03(HashMap<Integer, Integer> map){
        for (Integer key : map.keySet()) {
            Integer value = map.get(key);
            System.out.println(key+ " " +value);
        }
    }
    // entryset迭代器  获得键值对集合entry,并遍历
    public static void Traversal04(HashMap<Integer, Integer> map){
 
        //返回的是entry<Integer,Integer>类型的迭代器
        Iterator<Map.Entry<Integer, Integer>> it = map.entrySet().iterator();
 
         //返回时没声明it的类型,it.next()需要强转
        // Iterator it = map.entrySet().iterator(); 
        while(it.hasNext()){
            Map.Entry<Integer, Integer> entry = it.next();
            System.out.println(entry.getKey() + " " +entry.getValue());
        }
    }
    // keyset迭代器  获得键集合,并遍历,拿到key,通过key去get值。
    public static void Traversal05(HashMap<Integer, Integer> map){
 
        //返回时声明了it是Integet类型的迭代器,不用强转
        //Iterator<Integer> it = map.keySet().iterator();
 
        //返回时没声明it的类型,it.next()需要强转
        Iterator it = map.keySet().iterator();  
        while(it.hasNext()){
           // Integer key = it.next();
            Integer key = (Integer)it.next();
            Integer value = map.get(key);
            System.out.println(key + "" + value);
        }
    }
 
}

二. 遍历List的方式

  1. 第一种迭代器
ArrayList<String> list = new ArrayList<String>(); 
list.add("徐冰");
list.add("萤火");

Iterator<String> ite = list.iterator(); //将List集合中元素转到iterator变量中。
while(ite.hasNext()) //hasNext()判断当前“指针”下面是否还有元素的方法,java中没有指针,这只是举个例子。
{
	System.out.println(ite.next()); //如果“指针”下面有元素,则移动“指针”并获取相应位置的元素。
}
  1. 第二种 for循环
for (int i = 0; i < list.size(); i++) {  //用size方法获取长度。
	System.out.println(list.get(i));  //用get方法获取值。
}
  1. 第三种foreach
for (String name : list) {   //使用foreach进行遍历。
	System.out.println(name);
}

三. 遍历Set的方式

  1. 第一种:for each
//同样的for each写法
for (Entry<String, String> entry: map.entrySet()) {
 
    int key = entry.getKey();
 
    String value = entry.getValue();
 
}
  1. 第二种
Iterator<Entry<String, String>> iter = map.entrySet().iterator();
 
Entry<String, String> entry;
 
while (iter.hasNext()) {
 
    entry = iter.next();
 
    int key = entry.getKey();
 
    String value = entry.getValue();
 
}
  1. 第三种:迭代器 iterator
Iterator<String> iter = map.keySet().iterator();
 
while (iter.hasNext()) {
 
    int key = iter.next();
 
    String value = map.get(key);
}
 
————————————————————————————————————————————
 
//还有一种写法 用for each
for (String key : map.keySet()) {
    String value = map.get(key);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值