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 ...
随机推荐
- unity3d 通过代码建立曲面
using UnityEngine;using System;using System.Collections.Generic; using System.Collections;using Syst ...
- spark streaming的有状态例子
import org.apache.spark._ import org.apache.spark.streaming._ /** * Created by code-pc on 16/3/14. * ...
- layui之select的option叠加问题解决
小编我在使用layui,在select的地方遇到了坑,select里的值居然无法清空,select里的option还有叠加问题,为了解决这个问题,也达到我的功能,我研究了下,让有同样需求的小伙伴不踩坑 ...
- system 系统调用、gcc编译过程
system 库函数的功能是执行操作系统的命令或者运行指定的程序 #include <stdio.h> #include <stdlib.h>//引入库 int main() ...
- 2018 oppo校招前端面试题
1.Es6 2.http请求过程 3.js事件执行流程(蒙蔽中) [默认冒泡,由内到外,] 4.css 样式选择器的优先级 (!important在类选择器和id选择器都可以使用,但不推荐使用) 5. ...
- pycharm的各种设置,配置
http://blog.csdn.net/pipisorry/article/details/39909057# 目录(?)[+] pycharm学习技巧 Learning tips PyChar ...
- AJAX发送 PUT和DELETE请求参数传递注意点,了解一下
ajax发送put 和 delete 请求时,需要传递参数,如果参数在url地址栏上,则可以正常使用, 如果在 data:中需要传递参数,(浏览器会使用表单提交的方式进行提交) 则需要注意此时应作如下 ...
- 硬盘读取不了-->>完美解决
说明:电脑装了两个硬盘,一个固态一个机械,装完系统之后读取不到机械硬盘的数据,网上很多人都说格式化之后分盘,但是!!!里面的数据咋办?千万别自己倒腾转换格式什么的,一不小心数据真的丢了,那就再也找不回 ...
- Laravel-初体验笔记
一直想学Laravel却动不了手,刚好需要研究一个workflow之类的功能,有个Laravel项目一个登陆就把我搞晕,看Laravel文档看的也不能看进去,直接新建个Laravel仿一个,动手搞起来 ...
- 学习笔记: js插件 —— fullPage.js (页面全屏滚动)
fullPage.js (页面全屏滚动) 必须依赖 jquery-ui.min.js, 233K 14760个星. 以后有时间再看. API挺全 https://github.com/alvaro ...