Java Iterator, ListIterator 和 foreach语句使用
Java Iterator, ListIterator 和 foreach语句使用
foreach语句结构:
for(part1:part2){part3};
part2 中是一个数组对象,或者是带有泛性的集合.
part1 定义了一个局部变量,这个局部变量的类型与part2中的对象元素的类型是一致的.
part3 当然还是循环体.
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。 foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。 foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。
package com.twzheng; import java.util.Iterator;
import java.util.ListIterator;
import java.util.LinkedList;
import java.util.Scanner; public class MainClass { private static Scanner scanner;
private static String enterString; /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
scanner = new Scanner(System.in); LinkedList<String> myLinkedList = new LinkedList<String>(); printList(myLinkedList); initialLinkedList(myLinkedList); System.out.println("findMember -> Please enter member value: ");
enterString = scanner.next(); if(findMember(myLinkedList, enterString)){
System.out.println(enterString + " is in the linkedList.");
}else{
System.out.println(enterString + " is not found in the linkedList.");
} printList(myLinkedList);
}
// Java Iterator 使用
private static void printList(LinkedList<String> linkedList){
System.out.println("======================================"); Iterator<String> itr = linkedList.iterator();
// Iterator .hasNext()判断是否还有下一个
if (itr.hasNext()){
System.out.println("Pint linkedList members:");
}else{
System.out.println("The linkedList is empty!");
} int i = 0; while(itr.hasNext()){
// Iterator .next()取得下一个
System.out.println(" <" + i + ">" + itr.next());
i++;
} System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
}
// Java foreach语句使用
private static boolean findMember(LinkedList<String> linkedList, String lValue){
for(String checkedValue: linkedList){
if(checkedValue.equals(lValue)){
System.out.println("Found " + lValue + " at linkedList<" + linkedList.indexOf(checkedValue) + ">.");
return true;
}
}
return false;
}
// Java ListIterator 使用 .next() .previous() .add()
private static boolean addMember(LinkedList<String> linkedList, String lValue){
ListIterator<String> ltr = linkedList.listIterator(); while(ltr.hasNext()){
int comp = ltr.next().compareTo(lValue); if(comp == 0){
// equal, do not add
System.out.println(lValue + " is already inclued in the linkedList.");
return false;
} else if(comp > 0){
// new member
ltr.previous();
ltr.add(lValue);
System.out.println(lValue + " has been added in the linkedList.");
return true;
} else {
// ???
}
} ltr.add(lValue);
return true;
} private static void initialLinkedList(LinkedList<String> linkedList){ System.out.println("Initialize linkedList:"); int choseNumber;
boolean stopEnter = false; try {
do {
System.out.println(" 0 - stop enter ");
System.out.println(" 1 - enter a new member ");
System.out.println("Please chose number: ");
choseNumber = scanner.nextInt(); switch (choseNumber) {
case 0:
stopEnter = true;
break;
case 1:
System.out.println("Please enter new member value: ");
addMember(linkedList, scanner.next());
break;
default:
System.out.println("Enter error!");
break;
}
} while (!stopEnter);
} catch (Exception e) {
// TODO: handle exception
System.out.println("Enter error!");
}
} }
Java Iterator, ListIterator 和 foreach语句使用的更多相关文章
- 【Java学习笔记】foreach语句(高级for)
package p2; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java ...
- Java Iterator ListIterator 理解
一. Iterator 常用操作 next hasNext remove 先上源码:JDK8 简化版本,用于说明问题 private class Itr implements Iterator< ...
- java:集合输出Iterator,ListIterator,foreach,Enumeration
//集合输出,集合的四种输出 Iterator, ListIterator, foreach, Enumeration 只要碰到集合,第一输出选择是Iterator类. Iterator<E&g ...
- JAVA中ListIterator和Iterator详解与辨析
在使用Java集 合的时候,都需要使用Iterator.但是java集合中还有一个迭代器ListIterator,在使用List.ArrayList. LinkedList和Vector的时候可以使用 ...
- Java中的可变参数以及foreach语句
Java中的可变参数的定义格式如下: 返回值类型 方法名称(类型 ... 参数名称){} foreach语句的格式如下: for ( 数据类型 变量名称 :数据名称){ ... } public ...
- Java之Foreach语句
Foreach是for语句的特殊简化版本,但任何时候的foreach语句都可以改写成for语句.Foreach语句在遍历数组等方面为程序员提供了很大的方便 语法如下: For(元素变量 x:遍历对象o ...
- Java使用foreach语句对数组成员遍历输出
/** * 本程序使用foreach语句对数组成员进行遍历输出 * @author Lei * @version 2018-7-23 */ public class ForeachDemo { pub ...
- 可迭代的集合类型使用foreach语句
在学习算法这本书图论那一部分的时候,接触到了几个类似for(int w:G.adj(v)),的语句,不是很理解,就去百度,发现这是一种叫做foreach的语法,在书的76页有讲到,但是之前没认真看书, ...
- 浅析foreach语句
本篇是我对于foreach语句(增强for)的总结: 我的总结流程如下: 1.先整体说明增强for遍历集合与数组之间的区别. 2.通过一维数组来说明(给出反编译的源码,形成对照). 3.通过二维数组来 ...
随机推荐
- block使用小结、在arc中使用block、如何防止循环引用
引言 使用block已经有一段时间了,感觉自己了解的还行,但是几天前看到CocoaChina上一个关于block的小测试主题: [小测试]你真的知道blocks在Objective-C中是怎么工作的吗 ...
- QTP操作word文档
QTP可以对word文档进行操作,这里最主要展示的是向word文档写入内容,并保存的功能. Option explicit Dim wordApp Set wordApp = createobject ...
- AX7: How to deploy a Package
A. Using LCS services. B. Manual using command prompt. Here I’ll show using command prompt, as I fou ...
- hashmap两种遍历方法
第一种:使用entryset来进行遍历 Map map=new HashMap(); Iterator iter=map.entrySet().iterator(); while(iter.hasNe ...
- ES6与ES5差别
1.ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { var a = 1; let b = 1; } a; b;/ let不像var ...
- jquery 城市三级联动
js代码 /*城市三级联动 * @method cityChange * @param allProvince,allCity,allDistrict */ function cityChange(p ...
- EL表达式显示数据取整问题
第一 插入fmt标签库 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%&g ...
- 利用nodejs的cheerio抓取网站数据
/*引入模块*/ var http = require('http') var url = 'http://www.cnblogs.com/txxt' var cheerio = require('c ...
- ViewState提交后丢失,竟然是OnInit搞的鬼
提交后报错,断点看ViewStat值没有了.排查半天完全不知道怎么回事. 百度搜索了下ViewState提交丢失.然后CSDN一个帖子说的半拉子话提点了我. 然后想到我经常重写这些函数.以前怎么没遇到 ...
- jQuery学习笔记(在js中增加、删除及定位控件的操作)
代码内容很多都是从amazeui直接copy过来的,先声明,请不要说在下抄袭- - <!-------------------- HTML代码 ----------------------> ...