java遍历范型list_迭代器遍历【List、Set、Map】&& 遍历集合的方法总结 && Collections工具类...

整理&&总结

迭代器遍历Iterator【List、Set、Map】

example

1 packageboom.collection;2

3 importjava.util.ArrayList;4 importjava.util.HashMap;5 importjava.util.HashSet;6 importjava.util.Iterator;7 importjava.util.List;8 importjava.util.Map;9 importjava.util.Map.Entry;10 importjava.util.Set;11

12 /**

13 * 迭代器遍历List、Set、Map14 *@authorAdministrator15 *16 */

17 public classIteratorTest {18

19 public static voidmain(String[] args) {20 //testList();21 //testSet();

22 testMap();23 }24

25 private static voidtestMap() {26 Map map = new HashMap<>();27 map.put(001, "小喜庆");28 map.put(002, "小云云");29 map.put(003, "小胖砸");30

31 //遍历map第一种

32 Set> ss =map.entrySet();33 for (Iterator> iterator =ss.iterator(); iterator.hasNext();) {34 Entry entry = (Entry) iterator.next();35 System.out.println(entry.getKey() + "=>" +entry.getValue());36 }37

38 //遍历map第二种(通过键去获取对应的键值对)

39 Set keySet =map.keySet();40 for (Iterator iterator =keySet.iterator(); iterator.hasNext();) {41 Integer key =(Integer) iterator.next();42 System.out.println(key + "=>" +map.get(key));43 }44

45 }46

47 private static voidtestSet() {48 Set set = new HashSet<>();49 set.add("谷歌");50 set.add("百度");51 set.add("搜狗");52

53 //遍历

54 for (Iterator iterator =set.iterator(); iterator.hasNext();) {55 String string =iterator.next();56 System.out.println(string);57 }58 }59

60 private static voidtestList() {61 List list = new ArrayList<>();62 list.add("Google");63 list.add("Baidu");64 list.add("SougGou");65

66 //迭代器迭代集合

67 for (Iterator iterator =list.iterator(); iterator.hasNext();) {68 String string =(String) iterator.next();69 System.out.println(string);70 }71 }72

73 }

View Code

遍历List方法一:普通for循环

1 for(int i=0;i

2 String temp =(String)list.get(i);3 System.out.println(temp);4 }

遍历List方法二:增强for循环(使用泛型!)

1 for(String temp : list) {2 System.out.println(temp);3 }

遍历List方法三:使用Iterator迭代器(1)

1 for(Iterator iter=list.iterator();iter.hasNext();){2 String temp =(String)iter.next();3 System.out.println(temp);4 }

遍历List方法四:使用Iterator迭代器(2)

1 Iterator iter =list.iterator();2 while(iter.hasNext()){3 Object obj =iter.next();4 iter.remove();//如果要遍历时,删除集合中的元素,建议使用这种方式!

5 System.out.println(obj);6 }

遍历Set方法一:增强for循环

1 for(String temp:set){2 System.out.println(temp);3 }

遍历Set方法二:使用Iterator迭代器

1 for(Iterator iter =set.iterator();iter.hasNext();){2 String temp =(String)iter.next();3 System.out.println(temp);4 }

遍历Map方法一:根据key获取value

1 Map maps = new HashMap();2 Set keySet =maps.keySet();3 for(Integer id : keySet){4 System.out.println(maps.get(id).name);5 }

遍历Map方法二:使用entrySet

1 Set> ss =maps.entrySet();2 for (Iterator iterator =ss.iterator(); iterator.hasNext();) {3 Entry e =(Entry) iterator.next();4 System.out.println(e.getKey()+"--"+e.getValue());

Collections工具类 (collection是接口,collections是工具类)

[java.util.Collections 提供了对Set、List、Map进行排序、填充、查找元素的辅助方法]

创建模板进行测试:

1 List list = new ArrayList<>();2 for (int i = 0; i < 4; i++) {3 list.add(i + "小喜庆");4 }5 System.out.println("正常遍历:" + list);

1. void sort(List) //对List容器内的元素排序,排序的规则是按照升序进行排序。

1 //递增的方式遍历[自定义类使用comparable接口进行排序]

2 Collections.sort(list);3 System.out.println("递增遍历:" + list);

2. void shuffle(List) //对List容器内的元素进行随机排列。

1 //随机排序list中的元素

2 Collections.shuffle(list);3 System.out.println("随机遍历:" + list);

3. void reverse(List) //对List容器内的元素进行逆续排列 。

1 //逆序排序

2 Collections.reverse(list);3 System.out.println("逆序遍历:" + list);

4. int binarySearch(List, Object)//对于顺序的List容器,采用折半查找的方法查找特定对象。

1 //二分查找法

2 System.out.println(Collections.binarySearch(list, "小云云"));//没有查到返回一个负值 -5

3 System.out.println(Collections.binarySearch(list, "2小喜庆"));//查到返回一个对应的下标 2

5.void fill(List, Object) //用一个特定的对象重写整个List容器。

1 //特定的对象重写整个List容器。

2 Collections.fill(list, "Hello");3 System.out.println(list);

【1~5】运行图:

集合的总结

1. Collection 表示一组对象,它是集中、收集的意思,就是把一些数据收集起来。

2. Collection接口的两个子接口:

1) List中的元素有顺序,可重复。常用的实现类有ArrayList、LinkedList和 vector。

? ArrayList特点:查询效率高,增删效率低,线程不安全。

? LinkedList特点:查询效率低,增删效率高,线程不安全。

? vector特点:线程安全,效率低,其它特征类似于ArrayList。

2) Set中的元素没有顺序,不可重复。常用的实现类有HashSet和TreeSet。

? HashSet特点:采用哈希算法实现,查询效率和增删效率都比较高。

? TreeSet特点:内部需要对存储的元素进行排序。因此,我们对应的类需要实现Comparable接口。这样,才能根据compareTo()方法比较对象之间的大小,才能进行内部排序。

3. 实现Map接口的类用来存储键(key)-值(value) 对。Map 接口的实现类有HashMap和TreeMap等。Map类中存储的键-值对通过键来标识,所以键值不能重复。

4. Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作。

5. 类 java.util.Collections 提供了对Set、List、Map操作的工具方法。

6. 如下情况,可能需要我们重写equals/hashCode方法:

1) 要将我们自定义的对象放入HashSet中处理。

2) 要将我们自定义的对象作为HashMap的key处理。

3) 放入Collection容器中的自定义对象后,可能会调用remove、contains等方法时。

7. JDK1.5以后增加了泛型。泛型的好处:

1) 向集合添加数据时保证数据安全。

2) 遍历集合元素时不需要强制转换。

原文:https://www.cnblogs.com/cao-yin/p/9643296.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值