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. NYOJ-520 最大素因子

    这个题基本上就两个知识点, 一个素数筛选法求素数,另一个是求最大公因子, 不过确定最大素数在素数表中的位置时,要用到二分的思想,不然会超时,下面是具体代码的实现; #include <stdio ...

  2. python增删改查

    ###增删改查 names = ["zhangding","wangxu","wudong","cheng"] #增na ...

  3. Linq101-Ordering

    using System; using System.Collections.Generic; using System.Linq; namespace Linq101 { class Orderin ...

  4. [转载]__type_traits

    在STL中为了提供通用的操作而又不损失效率,我们用到了一种特殊的技巧,叫traits编程技巧.具体的来说,traits就是 通过定义一些结构体或类,并利用模板类特化和偏特化的能力,给类型赋予一些特性, ...

  5. 【windows开发实现记事本程序——界面篇】

    前言 从毕业开始学习windows UI编程,工作中总是和一些API打交道,但是从没有做过一个完整的界面程序.因此打算自己利用空余时间做一个小的项目来总结自己所学的东西.在网上看到许多人建议自己动手写 ...

  6. gearmand的安装

    1.安装gperf libuuid-devel yum install -y gperf libuuid-devel 2.安装 libevent yum install libevent libeve ...

  7. jQuery自带的一些常用方法总结

    jQuery自带的一些常用方法总结 这篇文章主要介绍了jQuery自带的一些常用方法总结,包括$.trim .$.contains.$.each.$.map.$.inArray.$.extend等,需 ...

  8. phalcon的一些中文手册和帮助文档地址收集

    1:中文官方网站:http://phalconphp.com/zh/ 挺好可以好好看文档 可安装http://bullsoft.org/phalcon-docs/这个去查找,这是个部分中文的手册! P ...

  9. python3可变与不可变数据类型

    Python3中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Dictionary(字典) Tuple(元组) Set(集合) 我理解的可变就是当一个变量创建 ...

  10. Python新手学习基础之数据结构-对数据结构的认知

    什么是数据结构? 数据结构是指:相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成. 举个列子来理解这个数据结构: 数据可以比作是书本, 数据结构相当于书架,书存放在书架上, ...