Iterator荟萃
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荟萃的更多相关文章
- 设计模式(十):从电影院中认识"迭代器模式"(Iterator Pattern)
上篇博客我们从醋溜土豆丝与清炒苦瓜中认识了“模板方法模式”,那么在今天这篇博客中我们要从电影院中来认识"迭代器模式"(Iterator Pattern).“迭代器模式”顾名思义就是 ...
- 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。
最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...
- [LeetCode] Flatten Nested List Iterator 压平嵌套链表迭代器
Given a nested list of integers, implement an iterator to flatten it. Each element is either an inte ...
- [LeetCode] Peeking Iterator 顶端迭代器
Given an Iterator class interface with methods: next() and hasNext(), design and implement a Peeking ...
- [LeetCode] Zigzag Iterator 之字形迭代器
Given two 1d vectors, implement an iterator to return their elements alternately. For example, given ...
- [LeetCode] Binary Search Tree Iterator 二叉搜索树迭代器
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ro ...
- 用vue.js学习es6(六):Iterator和for...of循环
一.Iterator (遍历器)的概念: 遍历器(Iterator)就是这样一种机制.它是一种接口,为各种不同的数据结构提供统一的访问机制.任何数据结构只 要部署Iterator接口,就可以完成遍历操 ...
- [转]使用Enumeration和Iterator遍历集合类
原文地址:http://www.cnblogs.com/xwdreamer/archive/2012/05/30/2526268.html 前言 在数据库连接池分析的代码实例中,看到其中使用Enume ...
- 14 Iterator和for...of循环
Iterator和for...of循环 首先 Iterator 是一个接口. 标准是 function makeIterator(array) { var nextIndex = 0; return ...
随机推荐
- 关于 yii 验证码显示, 但点击不能刷新的处理
先说说 render 与 renderPartial, 各位看官, 先别走, 我没跑题, 这个问题如果需要解决, 关键就在 render 与 renderPartial 的区别. renderPart ...
- Linux学习方法之以始为终—Linux工作分类
/** ****************************************************************************** * @author 暴走的小 ...
- 四、分离T4引擎
在前几篇文章中,我使用大量的篇幅来介绍T4在VisualStudio中如何使用.虽然在一定程度上可以提高我们的工作效率,但并没有实质上的改变.不过从另一方面来说,我们确实了解到了T4的强大. ...
- Building,Packaging,Deploying,and Administering Applications and Types
在我们进入章节之前,我们讨论一下生成.打包和部署你的应用程序和应用程序类型必须的步骤.在这章里,我关注的是如何为你的应用程序的用途生成程序集.在第三章,"共享程序集合和强命名程序集" ...
- CAS 4.0 配置开发手册(转)
转:http://blog.csdn.net/ahpo/article/details/46412859 1 下载 地址http://downloads.jasig.org/ cas-serve ...
- 外边距叠加collapsing-margin
原载:Smallni | http://www.smallni.com/collapsing-margin/ 恩,margin叠加一直是个问题,也是我们一直会遇到的问题,很久以前就想把这个知识点整理下 ...
- 解决Mac上Android开发时adb连接不到手机问题
今天在Mac OS上进行Android开发的时候,打开eclipse连接不到手机MX4问题 1. 插入手机打开 Terminal,输入 system_profiler SPUSBDataType 2 ...
- Build Android-x86 ICS 4 Virtualbox from Google Virtualbox Target and Intel Kernel 编译体验
最近一直在研究android源码的编译,应该说研究的很辛苦,最难的是下源码,总是不停的断掉,最后感谢公司的高网速,找到方法后12G的源码只花了1个小时就下完了. 参考以下网址:http://softw ...
- MLlib-分类与回归
MLlib支持二分类,多酚类和回归分析的多种方法,具体如下: 问题类别 支持方法 二分类 线性支持向量机, 逻辑回归,决策树,朴素贝叶斯 多分类 决策树,朴素贝叶斯 回归 线性最小二乘,Lasso,r ...
- iOS开发——OC篇&OC高级语法
iOS开发高级语法之分类,拓展,协议,代码块详解 一:分类 什么是分类Category? 分类就是类的补充和扩展部分 补充和扩展的每个部分就是分类 分类本质上是类的一部分 分类的定义 分类也是以代码的 ...