package com.starain.Iterator;
/*代码整理快捷键为Ctrl+Shift+F
* main方法输入快捷键main字符+Alt+/
* 输出快捷键sysout字符+Alt+/*/

import java.util.*;//常用的两个包,java.lang语言包,java.util实用包
/*java.lang自动引入,
* 包含数据包裹类(Byte,Short,Integer,Long,Float,Double,Character,Boolean),
* 字符串类(常量String,变量StringBuffer,StringBuilder)
* 数学类Math,
* 系统和运行时类(System,Runtime),
* 类操作类(Class,ClassLoader)
* java.util手动引入
* 包括日期类(Date,Calendar,GregorianCalendar)
* GregorianCalendar cal = (GregorianCalendar) GregorianCalendar.getInstance();
* cal.isLeapYear(year);返回boolean类型,判断是否是闰年
* 集合类(Collection--Set--HashSet,TreeSet;
* Collection--List--ArrayList,Vector,LinkedList;
* Map--HashTable,HashMap,WeakHashMap)
* */

public class IteratorDemo1 {
public static void main(String[] args) {
/* List 是按照原序有序集合,可重复
* ArrayList异步方式,性能高,但是线程不安全
* Vector为同步方式,性能低,但是线程安全 */
List<String> list1 = new ArrayList<String>();//List为接口,不能直接实例化,利用泛型,子类实例化方式

/*添加操作*/
list1.add("my");
list1.add("name");
list1.add("is");
list1.add("starain");

/*判断是否为空操作*/
boolean bool1 = list1.isEmpty();

if (!bool1) {

/*当作数组整天输出*/
System.out.println(list1);

/*增强for循环打印方式*/
for (String str : list1) {
System.out.print(str + " ");
}

System.out.println("\n==================");
System.out.print("两条华丽的分割线");
System.out.println("\n==================");

/*Iterator接口打印输出方式
* 集合输出的标准形式是用Iterator接口
* 原理:Iterator是专门的迭代输出接口,将元素逐个判断是否有内容,若有内容则将内容取出*/
Iterator<String> iterator1 = list1.iterator();
while (iterator1.hasNext()) {
System.out.print(iterator1.next() + " ");
}

/*移除操作*/
list1.remove("is");

System.out.println();
for (String str2 : list1) {
System.out.print(str2 + " ");
}
}

System.out.println("\n==================");
System.out.print("两条华丽的分割线");
System.out.println("\n==================");

/*Set是不重复集合,不允许重复,重复则后覆盖前
* HashSet无序(非原序)
* TreeSet自动排序,基于Map,当无法完成排序会报错*/
Set<String> set1 = new HashSet<String>();
Set<String> set2 = new TreeSet<String>();

/*HashSet set1添加元素*/
set1.add("A");//快速复制粘贴快捷键Ctrl+Alt+方向下键
set1.add("B");
set1.add("B");
set1.add("D");
set1.add("C");
set1.add("E");
set1.add("F");
set1.add("C");
set1.add("G");

/*输出*/
System.out.println(set1);

/*TreeSet set2添加元素*/
set2.add("A");//快速复制粘贴快捷键Ctrl+Alt+方向下键
set2.add("B");
set2.add("B");
set2.add("D");
set2.add("C");
set2.add("E");
set2.add("F");
set2.add("C");
set2.add("G");

/*输出*/
System.out.println(set2);

/*Map例子
* Map接口中的保存形式是key->value形式,例如通讯录,利用姓名key,找到对应的电话号码value
* Map<K,V>两个泛型,对应key和value*/
Map<String,String> map1 = new HashMap<String,String>();

/*Map的添加方式为put()方法*/
map1.put("key1", "www");
map1.put("key2", ".");
map1.put("key3", "starain");
map1.put("key4", ".");
map1.put("key5", "index");
map1.put("key6", ".");
map1.put("key7", "com");

/*先判断存性
* 通过key判断是containKey(key)
* 通过value判断containValue(value)*/
boolean boolkey1 = map1.containsKey("key1");
boolean boolkey2 = map1.containsKey("key99");
if(boolkey1){

/*通过key打印value*/
String str1 = map1.get("key1");
System.out.println(str1);
}else System.out.println("key1不存在");
if(boolkey2){
String str99 = map1.get("key99");
System.out.println(str99);
}else System.out.println("key99不存在");

/*iterator接口方式打印*/

/*打印key*/
Set<String> s = map1.keySet();//keySet()返回值为Set类型
Iterator<String> i1 = s.iterator();
while(i1.hasNext()){
System.out.print(i1.next()+" ");//操作中禁止用集合方式对集合进行remove移除操作
}

System.out.println("\n==================");
System.out.print("两条华丽的分割线");
System.out.println("\n==================");

/*打印value*/
Collection<String> c = map1.values();//value()返回的是Collection类型
Iterator<String> i2 = c.iterator();
while(i2.hasNext()){
System.out.print(i2.next()+" ");
}
}
}

Iterator荟萃的更多相关文章

  1. 设计模式(十):从电影院中认识"迭代器模式"(Iterator Pattern)

    上篇博客我们从醋溜土豆丝与清炒苦瓜中认识了“模板方法模式”,那么在今天这篇博客中我们要从电影院中来认识"迭代器模式"(Iterator Pattern).“迭代器模式”顾名思义就是 ...

  2. 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。

    最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...

  3. [LeetCode] Flatten Nested List Iterator 压平嵌套链表迭代器

    Given a nested list of integers, implement an iterator to flatten it. Each element is either an inte ...

  4. [LeetCode] Peeking Iterator 顶端迭代器

    Given an Iterator class interface with methods: next() and hasNext(), design and implement a Peeking ...

  5. [LeetCode] Zigzag Iterator 之字形迭代器

    Given two 1d vectors, implement an iterator to return their elements alternately. For example, given ...

  6. [LeetCode] Binary Search Tree Iterator 二叉搜索树迭代器

    Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ro ...

  7. 用vue.js学习es6(六):Iterator和for...of循环

    一.Iterator (遍历器)的概念: 遍历器(Iterator)就是这样一种机制.它是一种接口,为各种不同的数据结构提供统一的访问机制.任何数据结构只 要部署Iterator接口,就可以完成遍历操 ...

  8. [转]使用Enumeration和Iterator遍历集合类

    原文地址:http://www.cnblogs.com/xwdreamer/archive/2012/05/30/2526268.html 前言 在数据库连接池分析的代码实例中,看到其中使用Enume ...

  9. 14 Iterator和for...of循环

    Iterator和for...of循环 首先 Iterator 是一个接口. 标准是 function makeIterator(array) { var nextIndex = 0; return ...

随机推荐

  1. 模板-->扩展欧几里得

    如果有相应的OJ题目,欢迎同学们提供相应的链接 相关链接 所有模板的快速链接 单变元模线性方程模板 poj_2115_C Looooops,my_ac_code 简单的测试 None 代码模板 /* ...

  2. C#学习第五天

    字符串的处理 string可作char的只读数组 下面这段字符表示访问每个字符: string myString="A string."; char myChar=myString ...

  3. msp

    10月8号加入了微软的msp项目,其实那时候对msp没有什么概念,不知道要干嘛,真的觉得大不了就退出呗,反正也没啥大事,   现在再也不那么看了,这二十多天虽然没怎么水群,但是还是一直在关注着我们这个 ...

  4. Phonegap 安卓的自动升级与更新。当版本为4.0的时候

    清单文件中: <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14"/> ...

  5. iOS9中将图片保存到照片中的某个相册的方法说明

    iOS9中将图片保存到照片中的某个相册的方法说明 在App中很经常遇到的就是用户点击某张图片后将图片保存到本地,下面介绍下iOS中保存图片的一些东西 1.首先,在iOS中把图片保存到系统照片是比较简单 ...

  6. MySQL 元数据

    MySQL 元数据 你可能想知道MySQL以下三种信息: 查询结果信息: SELECT, UPDATE 或 DELETE语句影响的记录数. 数据库和数据表的信息: 包含了数据库及数据表的结构信息. M ...

  7. win7 IIS7.0 【IIS 管理器无法验证此内置帐户是否有访问权】

    异常信息: 服务器配置为将传递身份验证和内置帐户一起使用,以访问指定的物理路径.但是,IIS 管理器无法验证此内置帐户是否有访问权.请确保应用程序池标识具有该物理路径的读取访问权.如果此服务器加入到域 ...

  8. Python自动化运维之17、Python操作 Memcache、Redis、RabbitMQ

    一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...

  9. python中的builtin函数详解-第二篇

    classmethod(function) 这里不过多说明这个builtin方法的具体用法,python的文档和help函数已经给了这个方法充足的使用说明,所以我这里要说的时关于 classmetho ...

  10. MLlib-聚类

    聚类 例子 流聚类 例子 聚类 MLlib支持k-means聚类,一种最常用的聚类方法,将数据点聚成指定数据的簇.MLlib实现了一种k-means++的并行变种,叫做kmeansII.MLlib的实 ...