常见集合的循环输出方式

专题总结:常见集合的循环输出方式


Java 2009-12-27 17:14:42 阅读172 评论0   字号:大中小 订阅
一、List集合的循环输出


List<Object> objList = new ArrayList<Object>();
 1) for (int i=0; i<objList.size; i++)
    {
 // 循环输出集合中的每个对象
 Object object = objList.get(i);
 System.out.println(object);
    }


 2) for (Object obj:objList)
    {
 // 循环输出集合中的每个对象
 System.out.println(object);
    }


 3) 将List集合转换为迭代器Iterator接口,并且循环输出
   List<String> list = new ArrayList<String>();
 list.add("cheng");
 list.add("zeng");
 list.add("zhang");
 Iterator it = list.iterator();
 while (it.hasNext())
 {
  String str = (String)it.next();
  System.out.println(str);
 }


 4) 将List集合转换为Object类型的数组,循环输出
 List<String> list = new ArrayList<String>();
 list.add("cheng");
 list.add("zeng");
 list.add("zhang");
 Object[] obj = list.toArray();
 for (int i=0; i<obj.length; i++)
 {
  String s = (String)obj[i];
  System.out.println(s);
 }


二.循环输出Set<E> 
 1) 将Set集合转换为迭代器Iterator接口,并且循环输出
 Set<String> set = new HashSet<String>();
 set.add("cheng");
 set.add("zeng");
 set.add("zhang");
 Iterator it = set.iterator();
 while (it.hasNext())
 {
  String str = (String)it.next();
  System.out.println(str);
 }
 2) 将Set集合转换为Object类型的数组
 Set<String> set = new HashSet<String>();
 set.add("cheng");
 set.add("zeng");
 set.add("zhang");
 Object[] obj = set.toArray();
 for (int i=0;i<obj.length;i++)
 {
  String s = (String)obj[i];
  System.out.println(s);
 }


三.循环输出Map<K,V>
 1) 直接循环Map对象
 Map<String,String> map = new HashMap<String, String>();
 map.put("1","cheng");
 map.put("2","zeng");
 map.put("3","zhang");
 // 输出键值
 for (String key:map.keySet())
 {
  System.out.println(key);
 }
 // 输出value
 for (String value:map.values())
 {
  System.out.println(value);
 }


 2)  Map<String,String> map = new HashMap<String, String>();
 map.put("1","cheng");
 map.put("2","zeng");
 map.put("3","zhang");
 Iterator it = map.entrySet().iterator();
 while (it.hasNext())
 {
  Map.Entry<String, String> s = (Map.Entry<String, String>)it.next();
  System.out.println(s);
 }
 输出结果:
 3=zhang
 2=zeng
 1=cheng
### 如何在编程中输出Map集合Java中,`Map` 是一种键值对(Key-Value)的数据结构。要输出 `Map` 集合的内容,可以通过多种方实现。以下是几种常见的方法,并附带代码示例。 #### 方法一:使用增强型 for 循环 通过增强型 for 循环遍历 `Map` 的 `entrySet()`,可以逐一访问每个键值对并输出。 ```java import java.util.HashMap; import java.util.Map; public class MapOutputExample1 { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Apple", 1); map.put("Banana", 2); map.put("Orange", 3); for (Map.Entry<String, Integer> entry : map.entrySet()) { System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue()); } } } ``` 这种方法适用于需要同时访问键和值的场景[^1]。 #### 方法二:使用 forEach 方法(Java 8 及以上版本) 从 Java 8 开始,`Map` 接口提供了 `forEach` 方法,可以直接对键值对进行操作。 ```java import java.util.HashMap; import java.util.Map; public class MapOutputExample2 { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Apple", 1); map.put("Banana", 2); map.put("Orange", 3); map.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value)); } } ``` 这种方更加简洁,适合函数编程风格[^2]。 #### 方法三:将 Map 转换为 Stream 并输出 利用 Java 8 的 `Stream` API,可以将 `Map` 的 `entrySet()` 转换为流,并通过 `forEach` 方法输出。 ```java import java.util.HashMap; import java.util.Map; public class MapOutputExample3 { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Apple", 1); map.put("Banana", 2); map.put("Orange", 3); map.entrySet().stream() .forEach(entry -> System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue())); } } ``` 这种方法结合了流处理的优势,适合需要进一步过滤或映射的场景[^3]。 #### 方法四:直接调用 toString() 方法 `Map` 类实现了 `toString()` 方法,默认会以 `{key=value, key=value}` 的形输出所有键值对。 ```java import java.util.HashMap; import java.util.Map; public class MapOutputExample4 { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("Apple", 1); map.put("Banana", 2); map.put("Orange", 3); System.out.println(map.toString()); } } ``` 虽然这种方法简单,但输出格不可定制,仅适用于调试用途。 ### 注意事项 - 如果需要对输出进行排序,可以在输出前对 `Map` 的 `entrySet()` 进行排序。 - 对于大容量的 `Map`,建议优化输出逻辑以避免性能问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值