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 ...
随机推荐
- HDU 5211 筛法求约数
给出n个数a1,a2...an,定义函数 f[i]=j,(i<j),表示aj mod ai=0 的最小j,其中j大于i,如果不存在这样的数,则f[i]=0 求n个数所有f[]值的和 先用筛法o( ...
- 自己编写SqlHelper
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- 提示用户体验的最佳免费 Jquery 表单插件
网页表单是一个老生常谈的话题.出于这样或那样的目的,一些示例中都会包括用户注册,电子商务结算,用户设置甚至联系人表格.而输入栏是非常容易用现代的CSS3技术来应用样式.但是到底什么决定整体用户体验? ...
- AJAX入门学习(转)
一.基础概念 1.全称:Asynchronous.JavaScript.And.XML(异步的 JavaScript 和 XML). 2.定义: Ajax不是一个技术,它实际上是几种技术,每种技术都有 ...
- Activity中setResult(int resultCode, Intent data)与onActivityResult(int requestCode, int resultCode, Intent data)方法的调用
关于Activity的生命周期 onCreate(Bundle savedInstanceState):可以进行一些初始化的工作在activity第一次被创建的时候调用.这里是你做所有初始化设置的地方 ...
- android - 调试
在android总调试程序,不同于普通的java程序,我们可以通过'Windows->Show View->Other->LogCat"打开'LogCat'工具,选择下拉选 ...
- sublime text There are no packages 解决!
1.问题如下图 解决如下: 1.取得sublime.wbond.net的IPv4地址.在命令提示符中输入以下命令: ping sublime.wbond.net 获得 pv 4 ip 2.C ...
- js 函数参数形式
1. var a = function(b,c){ console.log(arguments);}a("1","cc"); -> ["1&q ...
- 安装 php-gd
安装cmd提示不支持GD模块,不能使用缩略图功能,需要安装php-gd 1.安装 php-gd yum list php-gd yum install php-gd 2.重启 httpd servic ...
- jquery easy ui 学习 (7) TreeGrid Actions
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...