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. 02-Sockent客户端

    package com.day1; import java.io.IOException; import java.io.OutputStream; import java.net.Inet4Addr ...

  2. RSA加密解密,String转PublicKey、PrivateKey;附Base64.JAR

    网络请求的数据需要加密,服务器给的他们那一套在Android一直报错,自己写了一个: package com.cc.common.util; import javax.crypto.Cipher; i ...

  3. sqlserver默认的内存策略

    sqlserver默认的内存策略,如果内存足够大,没有限制的话,会把一次搜索结果都放在内存中,下次搜索如果数据没发生变化(数据库缓存依赖策略),那么直接在内存数据中搜索,而不重新加载数据.可以通过每次 ...

  4. Solr中使用游标进行深度分页查询以提高效率(适用的场景下)

    通常,我们的应用系统,如果要做一次全量数据的读取,大多数时候,采用的方式会是使用分页读取的方式,然而 分页读取的方式,在大数据量的情况下,在solr里面表现并不是特别好,因为它随时可能会发生OOM的异 ...

  5. 在Linux命令行执行python命令

    在Linux的命令行执行python的某些命令: [root@centos7 ~]# echo "import sys ;print(sys.path)"|python3.6 [' ...

  6. gentoo rt-thread pkgs --update except Exception, e:

    使用 rt-thread pkgs --update 时候, 提示出错,信息如下: Traceback (most recent call last): File "/home/ptz/.e ...

  7. gentoo openrc 开机打印信息

    gentoo openrc 开机的时候,最开始 一些硬件的信息, 后面是一些内核和驱动的信息. 硬件的信息是默认保存到 /var/log/dmesg 中, 可以使用 dmesg | less 来查看硬 ...

  8. 我也说说Nginx——先搞搞清楚

    一.Nginx的诞生 这个很多文章里都有,总之就是当年啊有个技术困难叫C10K问题,就是如何解决10万个客户端的并发请求问题.然后有个俄罗斯大牛某某某,在02年使用C语言搞了个东东声称可以处理每天5亿 ...

  9. EasyExcel 解析excel

    参考:https://blog.csdn.net/jiangjiandecsd/article/details/81115622 https://blog.csdn.net/jianggujin/ar ...

  10. git 找回本地误删的文件

    1, 查看本地工作区变化 => git status 2, 重新设置文件状态 =>  git reset HEAD url    ( url 是上一步第二个红框中的地址) 3, 检出文件 ...