一、概念

迭代器为我们提供了统一的遍历容器的方式

 /*
*迭代器遍历
*
*/
package cn.sxt.collection; import java.security.KeyStore.Entry;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set; public class Test_0327_Iterator {
public static void main(String[] args) {
//testIteratorList();
//testIteratorSet();
testIteratorMap(); } public static void testIteratorList() {//测试迭代器遍历list
List<String> list=new ArrayList<String>();
list.add("A");
list.add("B");
list.add("D3");
list.add("C");
for (Iterator<String> iter = list.iterator(); iter.hasNext();) {
String temp = iter.next();
System.out.print(temp + "\t");//输出遍历结果
if (temp.endsWith("3")) {// 删除3结尾的字符串
iter.remove();
}
}
System.out.println("\n"+list);
} public static void testIteratorSet() {//测试迭代器遍历set, 与上边一模一样
Set<String> set=new HashSet<String>();
set.add("A");
set.add("B");
set.add("B3");
set.add("C");
for (Iterator<String> iter = set.iterator(); iter.hasNext();) {
String temp = iter.next();
System.out.print(temp + "\t");//输出遍历结果
}
} @SuppressWarnings("unchecked")
public static void testIteratorMap() {//测试迭代器遍历Map
Map<Integer,String> map=new HashMap<Integer,String>();
map.put(101, "A");
map.put(104, "D");
map.put(103, "C");
//不知道哪里错了,心累,就是报错 ,以后解决
/*Set<Entry<String, String>> ss = map.entrySet();
for (Iterator<Entry<String, String>> iterator = ss.iterator(); iterator.hasNext();) {
Entry<String, String> e = iterator.next();
System.out.println(e.getKey() + "--" + e.getValue());
}*/ Set<Integer> ss = map.keySet();//第二种遍历方式
for (Iterator<Integer> iterator = ss.iterator(); iterator.hasNext();) {
Integer key = iterator.next();
System.out.println(key + "--" + map.get(key));
}
}
}

遍历集合的方法总结:

链接:http://www.sxt.cn/Java_jQuery_in_action/nine-ergodicset.html

二、Collections工具类

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

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

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

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

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

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

【代码示例】

 /*
*测试Collections辅助工具类
*Collection 是接口 Collections是个工具类
*
*/
package cn.sxt.collection; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; public class Test_0327_Collections {
public static void main(String[] args) {
List<String> aList = new ArrayList<String>();
for (int i = 0; i < 5; i++){
aList.add("a" + i);
}
System.out.println(aList);
Collections.shuffle(aList); // shuffle:洗牌,随机 随机排列
System.out.println(aList);
Collections.reverse(aList); // reverse:倒置 逆续
System.out.println(aList);
Collections.sort(aList); //sort: 排序
System.out.println(aList);
System.out.println(Collections.binarySearch(aList, "a2")); //binarySearch:二分查找 返回"a2"的下标
Collections.fill(aList, "hello");//fill:填充 把所有的都换成“hello”
System.out.println(aList);
} }

[19/03/27-星期三] 容器_Iterator(迭代器)之遍历容器元素(List/Set/Map)&Collections工具类的更多相关文章

  1. Java容器---Arrays & Collections工具类

    1.Array & Arrays 与Collection & Collections区别 (1)Collection": 是一个接口,与其子类共同组成一个Collection ...

  2. Java自学第6期——Collection、Map、迭代器、泛型、可变参数、集合工具类、集合数据结构、Debug

    集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值. ...

  3. [19/03/23-星期六] 容器_ 泛型Generics

    一.概念 生活中的容器不难理解,是用来容纳物体的,程序中的“容器”也有类似的功能,就是用来容纳和管理数据. 数组就是一种容器,可以在其中放置对象或基本类型数据. ---优势:是一种简单的线性序列,可以 ...

  4. [RHEL8]安装Docker Problem: package docker-ce-3:19.03.6-3.el7.x86_64 requires containerd.io

    系统环境 # cat /etc/redhat-release Red Hat Enterprise Linux release 8.0 (Ootpa) 安装依赖 # yum install -y yu ...

  5. centos 7.6 安装最新版docker 19.03

    systemctl stop docker rpm -qa | grep docker 看到那个删除那个yum erase docker \ docker-client \ docker-client ...

  6. C++杂谈(二)初识vector容器与迭代器

    教科书中失踪的vector 很奇怪的一件事情,在当时学习C++的时候,老师并没有讲授容器的内容,当时参考的谭浩强老师的红皮C++也没有这个内容,不知为何.后来再学C++,发现容器是一个很重要的概念,在 ...

  7. 19. 星际争霸之php设计模式--迭代器模式

    题记==============================================================================本php设计模式专辑来源于博客(jymo ...

  8. C++ Primer : 第十一章 : 关联容器之关联容器的迭代器和操作

    关联容器的操作 除了和顺序容器定义的类型之外,关联容器还定义了一下几种类型: 关联容器额外的类型别名  key_type    此容器类型的关键字类型 mapped_type  每个关键字关联的类型, ...

  9. 持有对象:总结JAVA中的常用容器和迭代器,随机数 速查

    JAVA使用术语“Collection”来指代那些表示集合的对象,JAVA提供的接口很多,首先我们先来记住他们的层次结构: java集合框架的基本接口/类层次结构 java.util.Collecti ...

随机推荐

  1. js验证营业执照号码是否合规

    需求:最近要做实名验证的功能,但是验证我们要验证严谨一点,参考了网上关于营业执照号码规则和一些大侠的代码的代码,总结一下. 营业执照号码规则:规则 代码: //方法一:function checkLi ...

  2. Java复习第一天

    Day01 1.独立编写Hello World程序. public class Test{ public static void main(String[] args){ System.out.pri ...

  3. Java - USC2字符串截取

    Java内部采用UTF-16(USC2)编码,比如:"我" 为 98 17,"a" 为 0 97," " 为 0 32,"1&qu ...

  4. AtomicInteger关键字

    validate 关键字可以保证多线程之间的可见性,但是不能保证原子操作.(需要了解java内存模型jmm) package com.cn.test.thread; public class Vola ...

  5. C Primer Plus note9

    undefined reference to `WinMain@16'| 运行程式的时候出现了这样的错误,而且编译器也没有提示是哪一行出错: 经过百度搜索,发现了问题所在: 上面的图中main()函数 ...

  6. JBPM学习第1篇:入门与安装

    1.相关关键词 BPM:全称Business Process Management,即业务流程管理 BPEL:全称为Business Process Execution Language,即业务流程执 ...

  7. 数据库字段值为null利用setInc方法无法直接写入

    1.数据库字段值为null利用setInc方法无法直接写入,先判断是否为空,再写入. if($points->add($dataList)){ $user=M('cuser'); $null=$ ...

  8. C# javascript 全选按钮

    function selectAll(checkbox) {                  $('input[type=checkbox]').attr('checked', $(checkbox ...

  9. Django 模型层之多表操作

    一.创建模型 实例: 作者表: 拥有字段:姓名(name),性别(sex),该表与书籍表之间为多对多的关系 作者详情表: 拥有字段:地址(addr),手机号(phone),该表与作者表之间为一对一的关 ...

  10. JavaScript有限状态机实现方式

    阮一峰博客 http://www.ruanyifeng.com/blog/2013/09/finite-state_machine_for_javascript.html 开源实现库(javascri ...