Java系列,《Java核心技术 卷1》,chapter 13,集合
13.1.2 Java类库中的集合接口和迭代器接口
it.remove();it.remove();//error而是应该it.remove();it.next();it.remove();
import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class LearnCollection {public static void main(String[] args) {// TODO Auto-generated method stubArrayList<String> nameList = new ArrayList<String>();nameList.add("zhang.san");nameList.add("li.si");nameList.add("wang.wu");nameList.add("zhao.yi");System.out.println("initial content.");printCollection(nameList);printViaIterator(nameList.iterator());removeViaIterator(nameList.iterator(), "li.si");System.out.println("");System.out.println("after remove li.si");printCollection(nameList);printViaIterator(nameList.iterator());}/*** remove via iterator* @param it* @param value*/static void removeViaIterator(Iterator<?> it, String value){while(it.hasNext()){if(it.next().toString() == value){it.remove();System.out.println(String.format("remove %s success.", value));return;}}System.out.println(String.format("remove %s failed.", value));}/*** @param it*/static void printViaIterator(Iterator<?> it){System.out.println("Print via iterator:");while(it.hasNext())System.out.println(String.format("\titem:%s", it.next().toString()));}/*** @param collection*/static void printCollection(Collection<?> collection){System.out.println("collection content:");for(Object item: collection){System.out.println(String.format("\titem:%s", item.toString()));}}}
static void testToArray(){LinkedList<String> strList = new LinkedList<String>();strList.add("zhang.san");strList.add("li.si");strList.add("wang.wu");print("filled array is not large enough.");testToArrayHelper(strList, new String[2]);print("filled array is large enough.");testToArrayHelper(strList, new String[3]);}static void testToArrayHelper(LinkedList<String> strList, String[] filledArray){String[] returnedArray = strList.toArray(filledArray);printArray("filled array:", filledArray);print("");printArray("returned array:", returnedArray);print("");if(filledArray == returnedArray)print("filled array is equal returned array.");elseprint("filled array is not equal returned array.");}static <T> void printArray(String title, T[] array){print(title);for(T item: array){if(item != null)print("item:" + item.toString());elseprint("item is null");}}static void print(String info){System.out.println(info);}
filled array is not large enough.filled array:item is nullitem is nullreturned array:item:zhang.sanitem:li.siitem:wang.wufilled array is not equal returned array.filled array is large enough.filled array:item:zhang.sanitem:li.siitem:wang.wureturned array:item:zhang.sanitem:li.siitem:wang.wufilled array is equal returned array.
static void testListIteratorAdd(){LinkedList<String> strList = new LinkedList<String>();strList.add("1");strList.add("2");strList.add("3");print("init content:");printCollection(strList);ListIterator<String> it = strList.listIterator();it.next();it.add("1.1");it.add("1.2");print("after insert 2 item");printCollection(strList);}
init content:collection content:item:1item:2item:3after insert 2 itemcollection content:item:1item:1.1item:1.2item:2item:3
static void testListIteratorRemove(){LinkedList<String> strList = new LinkedList<String>();strList.add("1");strList.add("2");strList.add("3");print("init content:");printCollection(strList);ListIterator<String> it = strList.listIterator();it.next();it.remove();//okprint("after remove 1 item");printCollection(strList);it.remove();//errorprint("after remove 2 item");printCollection(strList);}
init content:collection content:item:1item:2item:3after remove 1 itemcollection content:item:2item:3Exception in thread "main" java.lang.IllegalStateExceptionat java.util.LinkedList$ListItr.remove(LinkedList.java:923)at me.ygc.javabasic.learnJava.LearnCollection.testListIteratorRemove(LearnCollection.java:33)at me.ygc.javabasic.learnJava.LearnCollection.main(LearnCollection.java:15)
Java系列,《Java核心技术 卷1》,chapter 13,集合的更多相关文章
- 《Java核心技术 卷II 高级特性(原书第9版)》
<Java核心技术 卷II 高级特性(原书第9版)> 基本信息 原书名:Core Java Volume II—Advanced Features(Ninth Edition) 作者: ( ...
- 《Java核心技术卷I》观赏指南
Tomxin7 如果你有想看书的计划,但是还在纠结哪些书值得看,可以简单看看"观赏指南"系列,本文会简单列出书中内容,给还没有买书的朋友提供一个参考. 前言 秋招过去很久了,虽然在 ...
- 《Java核心技术卷1》拾遗
之前对Java的基础知识有过学习,现在开始学习<Java核心技术卷1>,将一些新学的知识点,做简要记录,以备后续回顾: 1.double (1)所有的“非数值”都认为是不相同的 if(x= ...
- java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;
<java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...
- java的优点和误解 《java核心技术卷i》第一章
<java核心技术卷i>第一章主要内容包括三点: 1:Java白皮书的关键术语:描述Java的十一个关键字: 2:Java applet 3 :关于Java的常见误解 1:第一章:Ja ...
- Java核心技术·卷 II(原书第10版)分享下载
Java核心技术·卷 II 内容介绍 Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与<Java编程思想>齐名,10余年 ...
- 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承
<Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...
- 读书笔记-《Java核心技术卷I-基础知识》
1.定时器Timer类 构造定时器时,需要设置一个时间间隔,并告知定时器,当到达时间间隔时需要做什么操作.定时器需要知道调用哪一个方法,并要求传递的对象所属的类实现了java.awt.event包的A ...
- Java核心技术卷阅读随笔--第2章【Java 程序设计环境】
Java 程序设计环境 本章主要介绍如何安装 Java 开发工具包( JDK ) 以及如何编译和运行不同类型的程序: 控制台程序. 图形化应用程序以及 applet.运行 JDK 工具的方法是在终端窗 ...
- Java系列:关于Java中的桥接方法
这两天在看<Java核心技术 卷1>的泛型相关章节,其中说到了在泛型子类中override父类的泛型方法时,编译器会自动生成一个桥接方法,这块有点看不明白. 书上的例子代码如下: publ ...
随机推荐
- CentOS6.5下RPM方式安装mysql5.6.33
1.mysql下载 下载地址:https://dev.mysql.com/downloads/mysql/5.6.html下载以下安装包: MySQL-client-5.6.33-1.el6.x86_ ...
- C语言初学者代码中的常见错误与瑕疵(5)
问题: 素数 在世博园某信息通信馆中,游客可利用手机等终端参与互动小游戏,与虚拟人物Kr. Kong 进行猜数比赛. 当屏幕出现一个整数X时,若你能比Kr. Kong更快的发出最接近它的素数答案,你将 ...
- Windows环境下JDK安装与环境变量配置详细的图文教程
原文作者:souvc博文出处:http://www.cnblogs.com/liuhongfeng/p/4177568.html 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1 ...
- Android监听键盘显示和隐藏
问题概况:横板cocos2dx游戏,点击输入框弹出键盘时,界面要求跟随网上平易,不能挡住输入框.这种问题只出现在非全屏键盘到情况下. 方案1:mainActivity重写onconfiguration ...
- hadooop2.6 job pending research
https://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/ClusterSetup.html 我使用的是已经运行在 ...
- Learning C Struct
为什么需要结构体类型? 一种语言本身往往会提供一些最基本的数据类型,比如数字型(int,bigint,float,double等),字符型,日期型,布尔型等.但现实世界中,我们面对的对象总是非常复常, ...
- hdu 1028 Ignatius and the Princess III 简单dp
题目链接:hdu 1028 Ignatius and the Princess III 题意:对于给定的n,问有多少种组成方式 思路:dp[i][j],i表示要求的数,j表示组成i的最大值,最后答案是 ...
- T-SQL 语句创建Database的SQL mirroring关系
1 证书部分:principle 和 secondary 端执行同样操作,更改相应name即可 USE master; --1.1 Create the database Master Key, if ...
- js统计字符串中各种字符情况
问题描述:在一个字符串中,统计出大写字母.小写字母.数字和其他字符各数.这个算法以前在学习java的时候,老师说过,而且说了四种算法.在孔乙己的世界里,茴香豆的"茴"字有四种写法嘛 ...
- RabbitMQ 一二事(3) - 订阅模式(微信公众号模式)的应用
之前讲的消费者互相可以把队列中的消息全部读取,但是不是读完整的所有信息 那么采用订阅模式就行,这就是微信公众号的模式, 比如10个人订阅了我的公众号"BeJavaGod",当我发送 ...