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的更多相关文章

  1. 集合和Iterator迭代器

    集合 集合是java中提供的一种容器,可以用来存储多个数据. 注意: ①.集合只能存放对象.比如你存一个 int 型数据 1放入集合中, 其实它是自动转换成 Integer 类后存入的,Java中每一 ...

  2. List集合和iterator并发异常处理

    一:List接口: 子类:ArrayList   LinkedList 特点:Unlike sets, lists typically allow duplicate elements.不像set集合 ...

  3. java基础33 Set集合下的HashSet集合和TreeSet集合

    单例集合体系: ---------| collection  单例集合的根接口--------------| List  如果实现了list接口的集合类,具备的特点:有序,可重复       注:集合 ...

  4. Scala集合和Java集合对应转换关系

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...

  5. Iterator接口。集合输出

    在集合中支持以下几种方式. iterator ListIterator foreach输出 emumeration输出. 集合输出的标准操作: 集合输出的时候必须形成以下的思路:只要碰到了集合输出的操 ...

  6. Java集合的实现细节—Set集合和Map集合

    Set:代表无序.不可重复的集合 Map:代表key-value对集合,也称为关联数组 从表面上看,Set和Map相似性很少,但实际上可以说Map集合时Set集合的扩展. 1.Set集合和Map集合的 ...

  7. Iterator 接口

    首先要从foreach说起,我们都知道对象,数组和对象可以被foreach语法遍历,数字和字符串却不行.其实除了数组和对象之外PHP内部还提供了一个 Iterator 接口,实现了Iterator接口 ...

  8. php迭代器Iterator接口

    以前也看过迭代器Iterator接口,感觉不如yied好用,因此实际工作中并没有用到过. 今天看了一篇网上的博客(https://www.cnblogs.com/wwjchina/p/7723499. ...

  9. java集合(2)-Collection与Iterator接口

    1 package com.j1803.collectionOfIterator; 2 import java.util.ArrayList; 3 import java.util.Collectio ...

随机推荐

  1. unity3d 通过代码建立曲面

    using UnityEngine;using System;using System.Collections.Generic; using System.Collections;using Syst ...

  2. spark streaming的有状态例子

    import org.apache.spark._ import org.apache.spark.streaming._ /** * Created by code-pc on 16/3/14. * ...

  3. layui之select的option叠加问题解决

    小编我在使用layui,在select的地方遇到了坑,select里的值居然无法清空,select里的option还有叠加问题,为了解决这个问题,也达到我的功能,我研究了下,让有同样需求的小伙伴不踩坑 ...

  4. system 系统调用、gcc编译过程

    system 库函数的功能是执行操作系统的命令或者运行指定的程序 #include <stdio.h> #include <stdlib.h>//引入库 int main() ...

  5. 2018 oppo校招前端面试题

    1.Es6 2.http请求过程 3.js事件执行流程(蒙蔽中) [默认冒泡,由内到外,] 4.css 样式选择器的优先级 (!important在类选择器和id选择器都可以使用,但不推荐使用) 5. ...

  6. pycharm的各种设置,配置

      http://blog.csdn.net/pipisorry/article/details/39909057# 目录(?)[+] pycharm学习技巧 Learning tips PyChar ...

  7. AJAX发送 PUT和DELETE请求参数传递注意点,了解一下

    ajax发送put 和 delete 请求时,需要传递参数,如果参数在url地址栏上,则可以正常使用, 如果在 data:中需要传递参数,(浏览器会使用表单提交的方式进行提交) 则需要注意此时应作如下 ...

  8. 硬盘读取不了-->>完美解决

    说明:电脑装了两个硬盘,一个固态一个机械,装完系统之后读取不到机械硬盘的数据,网上很多人都说格式化之后分盘,但是!!!里面的数据咋办?千万别自己倒腾转换格式什么的,一不小心数据真的丢了,那就再也找不回 ...

  9. Laravel-初体验笔记

    一直想学Laravel却动不了手,刚好需要研究一个workflow之类的功能,有个Laravel项目一个登陆就把我搞晕,看Laravel文档看的也不能看进去,直接新建个Laravel仿一个,动手搞起来 ...

  10. 学习笔记: js插件 —— fullPage.js (页面全屏滚动)

    fullPage.js (页面全屏滚动) 必须依赖 jquery-ui.min.js,   233K 14760个星. 以后有时间再看. API挺全 https://github.com/alvaro ...