15.Colection集合和Iterator接口.md
1.Collection
1.1概念

//Collection
Collection cArray = new ArrayList();
//add
cArray.add("HELLO");
cArray.add(8);
System.out.println(cArray);
System.out.println("Is contains:HELLO -" + cArray.contains("HELLO"));

1.1遍历方法-Lambda表达式

1.2遍历方法-Iterator接口

注意:

1.3使用Lambda方法遍历Iterator接口

1.4使用Foreach方法遍历
代码示例:
public static void main(String[] args) {
//Collection
Collection cArray = new ArrayList();
//add
cArray.add("HELLO");
cArray.add(8);
System.out.println(cArray);
System.out.println("Is contains:HELLO -" + cArray.contains("HELLO"));
//Lambda
cArray.forEach(sy->System.out.println("Lambda:" + sy));
//Iterator
Iterator iter = cArray.iterator();
while (iter.hasNext()) {
String s = (String)iter.next();
System.out.println("Iterator:" + iter.next());
//Error
//cArray.remove(s);
}
//Lambda-Iterator
Iterator i = cArray.iterator();// define a new Iterator, can not use iter
i.forEachRemaining(obj->System.out.println("Lambda-Iterator:" + obj));
//foreach
for(Object value:cArray)
{
System.out.println("foreach:" + value);
}
}
1.5Predicate方法

public static void main(String[] args) {
//Collection
Collection cArray = new ArrayList();
//add
cArray.add("HELLO");
cArray.add("8");
cArray.add("aaa8");
System.out.println("Init:" + cArray);
System.out.println("Is contains:HELLO -" + cArray.contains("HELLO"));
//Predicate
cArray.removeIf(obj->((String)obj).length()<3); //remove length less than 3
cArray.removeIf(obj->((String)obj).contains("8")); //remove contains 8
System.out.println("After removeIf:" + cArray);
}
2.一个常用类和集合的简单例子:账号密码登录
package per.liyue.code.login;
public class User {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
private String passWord;
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "用户名:" + this.id + " 密码:" + this.passWord;
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
User user = (User)obj;
if ((user.id == this.id)) {
return true;
} else {
return false;
}
}
}
package per.liyue.code.login;
import java.util.ArrayList;
import java.util.Collection;
import java.util.InputMismatchException;
import java.util.Iterator;
import java.util.Scanner;
public class Init {
//static Scanner scanner = new Scanner(System.in);
static Collection users = new ArrayList<>();
public static void main(String[] args) {
// TODO Auto-generated method stub
while (true) {
System.out.println("请选择 A[注册] B[登录] C[退出]");
String option = getMyScanner().next();
// 注册
if ("a".equalsIgnoreCase(option)) {
User userNew = new User();
try {
reg(userNew);
} catch (InputMismatchException e) {
System.out.println("账号只能为数字类型,请重新输入:");
reg(userNew);
}
System.out.println("注册成功!");
users.add(userNew);
printUser();
}
// 登录
else if ("b".equalsIgnoreCase(option)) {
try {
login();
} catch (InputMismatchException e) {
System.out.println("账号只能为数字类型,请重新输入:");
login();
}
} else if ("c".equalsIgnoreCase(option)) {
System.out.println("退出系统!");
System.exit(0);
} else {
System.out.println("请输入正确的字母!");
}
} // while
// true
}
public static void reg(User userNew) throws InputMismatchException {
// id
while (true) {
System.out.println("请输入账号:");
int id = getMyScanner().nextInt();
if (users.contains(id)) {
System.out.println("账号已经存在,请重新输入!");
} else {
userNew.setId(id);
break;
}
} // while true id
// password
System.out.println("请输入密码,输入C返回菜单");
String passWord = getMyScanner().next();
userNew.setPassWord(passWord);
}
public static void printUser() {
Iterator iterator = users.iterator();
while (iterator.hasNext()) {
User user = (User) iterator.next();
System.out.println(user.toString());
}
}
public static void login() throws InputMismatchException {
while (true) {
System.out.println("请输入账号");
User userLog = new User();
userLog.setId(getMyScanner().nextInt());
System.out.println("请输入密码,输入C返回菜单:");
userLog.setPassWord(getMyScanner().next());
Iterator iterator = users.iterator();
boolean checkExists = false;
while (iterator.hasNext()) {
User user = (User) iterator.next();
if (user.equals(userLog)) {
checkExists = true;
}
}
if (checkExists) {
System.out.println("登录成功!");
} else {
System.out.println("请输入正确的账号密码!");
}
}
}
public static Scanner getMyScanner(){
return new Scanner(System.in);
}
}
15.Colection集合和Iterator接口.md的更多相关文章
- 集合和Iterator迭代器
集合 集合是java中提供的一种容器,可以用来存储多个数据. 注意: ①.集合只能存放对象.比如你存一个 int 型数据 1放入集合中, 其实它是自动转换成 Integer 类后存入的,Java中每一 ...
- List集合和iterator并发异常处理
一:List接口: 子类:ArrayList LinkedList 特点:Unlike sets, lists typically allow duplicate elements.不像set集合 ...
- java基础33 Set集合下的HashSet集合和TreeSet集合
单例集合体系: ---------| collection 单例集合的根接口--------------| List 如果实现了list接口的集合类,具备的特点:有序,可重复 注:集合 ...
- Scala集合和Java集合对应转换关系
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...
- Iterator接口。集合输出
在集合中支持以下几种方式. iterator ListIterator foreach输出 emumeration输出. 集合输出的标准操作: 集合输出的时候必须形成以下的思路:只要碰到了集合输出的操 ...
- Java集合的实现细节—Set集合和Map集合
Set:代表无序.不可重复的集合 Map:代表key-value对集合,也称为关联数组 从表面上看,Set和Map相似性很少,但实际上可以说Map集合时Set集合的扩展. 1.Set集合和Map集合的 ...
- Iterator 接口
首先要从foreach说起,我们都知道对象,数组和对象可以被foreach语法遍历,数字和字符串却不行.其实除了数组和对象之外PHP内部还提供了一个 Iterator 接口,实现了Iterator接口 ...
- php迭代器Iterator接口
以前也看过迭代器Iterator接口,感觉不如yied好用,因此实际工作中并没有用到过. 今天看了一篇网上的博客(https://www.cnblogs.com/wwjchina/p/7723499. ...
- java集合(2)-Collection与Iterator接口
1 package com.j1803.collectionOfIterator; 2 import java.util.ArrayList; 3 import java.util.Collectio ...
随机推荐
- Windows 2016 无域故障转移群集部署方法 超详细图文教程 (一)
故障转移群集是一个很实用的功能,而windows在2016版本开始,终于支持不用域做故障转移群集. 在群集中,我们可以设定一个"群集IP" 而客户端只需要根据这个"群集I ...
- 用tmux工具给linux命令行分栏
介绍 有时候我们需要在命令行里同时开多个程序,但是每个程序都会占用命令行,这时候可以用tmux,给命令行界面分栏. 基本概念 tmux是分多层的 会话>窗口(我下文称作:页)>面板(或者叫 ...
- import的使用
iimport函数用来调用python自带的.py文件或者用户自己编写的.py文件 调用方式很简单 1 import time 2 import lib import time 调用python自带的 ...
- maven 插件2
Maven is - at its heart - a plugin execution framework; all work is done by plugins. Maven 本质上就是一个插件 ...
- Oracle数据库基础教程
Oracle基础 简介 数据库实例 表空间 登录身份和角色 用户和授权 数据类型 数据操作 导入数据库 一.Oracle基础: 1.简介 Oracle创建数据库不能像SQL Server那样用一个简单 ...
- 关于 version control
1.什么是 version control 版本控制(Vevision control)是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程.此外,版本控制也是一种软体工程技巧,借此能在软体 ...
- java 设计模式http://www.runoob.com/design-pattern/design-pattern-tutorial.html
参考:http://www.runoob.com/design-pattern/design-pattern-tutorial.html
- centos7.5安装VirtualBox
centos7.5安装minikube时要求先安装VirtualBox 1.准备repo文件 [root@localhost yum.repos.d]# pwd /etc/yum.repos.d [r ...
- MVC控制器返回重定向操作
注意:在使用Ajax请求后台时是不能在后台重定向的! 解决方案: if (userInfoService.CheckUser(username, psd, out msg)) { , msg = &q ...
- module模块和包
import 和 from 调用 module 目录有calc.py 和 test.py 两个文件 calc.py文件内容: def add(x,z): return x+z def sub(x,z ...