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 ...
随机推荐
- 使用Apache Tomcat Maven插件部署运行 Web 项目
什么是Apache Tomcat Maven Plugin? Maven Plugin 是Apache Tomcat 提供的一个Maven插件,它可以在你没有tomcat容器时将任何一个war项目文件 ...
- Python文件操作之简化代码
一朝误入此门中,从此红尘了如空.... 程序这条路,当真是路漫漫... 这两天找到一本书,名为<笨方法学Python第三版>,全实例,感觉挺好的.需要的点书名下载, 密码:gmpn 今天想 ...
- docker-1 初识docker
五分钟认识docker 什么是docker? 把他想象成一个用了一种新颖方式实现的超轻量虚拟机,在大概效果上也是正确的.当然在实现的原理和应用上还是和VM有巨大差别的,并且专业的叫法是应用容器(App ...
- 如何在Java Filter 中注入 Service
在项目中遇到一个问题,在 Filter中注入 Serivce失败,注入的service始终为null.如下所示: public class WeiXinFilter implements Filter ...
- 读书笔记——Windows环境下32位汇编语言程序设计(13)关于EXCEPTION_DEBUG_INFO结构体
在动手自己尝试编写书上第13章的例子Patch3时,遇到了一个结构体EXCEPTION_DEBUG_INFO. 这个结构体在MASM的windows.inc中的定义和MSDN中的定义不一样. (我使用 ...
- Redis高级应用
上一篇博文讲述了Redis的一些常用命令,可以对数据库及数据库服务器进行操作,本篇将讲述Redis的高级应用及配置 安全性 设置密码:修改redis.conf中的requirepass,在其后面添加密 ...
- JSP 标准标签库(JSTL)之最常用的JSTL标签总结
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. Apache Tomcat安装JSTL 库步骤如下: 从Apache的标准标签库中下载的二进包(jakarta-t ...
- Linux 常用命令行
Linux常用命令行 第一部分: cd命令 第二部分:文件操作 第三部分:压缩包操作
- three Sum
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...
- hdu 5800 To My Girlfriend + dp
传送门:hdu 5800 To My Girlfriend 题意:给定n个物品,其中i,j必选,l,m必不选,问组成体积为s的方法一共有多少种 思路:定义dp[i][j][s1][s2],表示前i种物 ...