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 ...
随机推荐
- android textview 设置不同的颜色和大小
1.定义不同的style <style name="approval_detail_info_style1"> <item name="android: ...
- 深入理解java虚拟机(2)------垃圾收集器和内存分配策略
GC可谓是java相较于C++语言,最大的不同点之一. 1.GC回收什么? 上一篇讲了内存的分布. 其中程序计数器栈,虚拟机栈,本地方法栈 3个区域随着线程而生,随着线程而死.这些栈的内存,可以理解为 ...
- swipe js dynamic content
swipe js dynamic content swipe 动态改变内容时,需要用 update 一下. swiper.update(true); 实例: HTML Code 页面用的FreeMa ...
- 配置gitlab gerrit jenkins
配置gerrit 在gerrit创建jenkins用户 把jenkins用户加入Non-Interactive的组中 Projects -> List -> All-Projects Pr ...
- Hadoop从伪分布式到真正的分布式
对这两天学习hadoop的一个总结,概念就不提了.直接说部署的事,关于如何部署hadoop网上的资料很多, 比较经典的还是Tim在IBM developworks上的系列文章 http://www.i ...
- python strip() lstrip() rstrip() 使用方法
Python中的strip用于去除字符串的首尾字符串,同理,lstrip用于去除最左边的字符,rstrip用于去除最右边的字符. 这三个函数都可传入一个参数,指定要去除的首尾字符. 需要注意的是,传入 ...
- CI 框架中的自定义路由规则
在 CI 框架中,一个 URL 和它对应的控制器中的类以及类中的方法是一一对应的,如: www.test.com/user/info/zhaoyingnan 其中 user 对应的就是控制器中的 us ...
- 动手学习TCP:TCP连接建立与终止
TCP是一个面向连接的协议,任何一方在发送数据之前,都必须先在双方之间建立一条连接.所以,本文就主要看看TCP连接的建立和终止. 在开始介绍TCP连接之前,先来看看TCP数据包的首部,首部里面有很多重 ...
- [转]ASP.NET MVC 4 (九) 模型绑定
本文转自:http://www.cnblogs.com/duanshuiliu/p/3706701.html 模型绑定指的是MVC从浏览器发送的HTTP请求中为我们创建.NET对象,在HTTP请求和C ...
- MIT jos 6.828 Fall 2014 训练记录(lab 4)
源代码参见我的github: https://github.com/YaoZengzeng/jos Part A: Multiprocessor Support and Cooperative Mul ...