java基础知识5--集合类(Set,List,Map)和迭代器Iterator的使用
写的非常棒的一篇总结: http://blog.csdn.net/speedme/article/details/22398395#t1

下面主要看各个集合如何使用迭代器Iterator获取元素:
1.list使用迭代器Iterator
public class testArrayList {
public static void main(String args[]) {
f1();
f2();
}
public static void f1(){
List<String> strList = new ArrayList<String>();
for (int i = 0; i < 10; i++)
{
strList.add("string" + i);
}
Iterator<String> iterator = strList.iterator();//list.iterator()
while (iterator.hasNext()) //判断集合中元素是否遍历完毕,如果没有,就返回true
{
if (iterator.next().equals("string3"))
{
iterator.remove(); //iterator.remove()移除的是最近一次iterator.next()所获取的对象
}
}
iterator = strList.iterator();//此步非常重要,删除后要重新定义迭代器
while (iterator.hasNext())
{
System.out.println(iterator.next()); //iterator.next() 返回下一个元素
}
}
public static void f2() {
// 1.向arraylist中添加元素
ArrayList arrayList = new ArrayList();
arrayList.add("wyy"); //arrayList.add
arrayList.add("12");
arrayList.add("huhu");
arrayList.add("897");
System.out.println("输出整个arraylist" + arrayList); //[wyy, 12, huhu, 897]
for (int i = 0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i));
}
Iterator<String> a = arrayList.iterator();
System.out.println("剩下的元素有:");
while (a.hasNext()) {
if (a.next().equals("12")) {
a.remove();
}
}
//用for循环,可以节约内存,开发时一般使用
for( a = arrayList.iterator();a.hasNext();)//注意,如果判断结果后删除,必须重新对迭代器进行定义,才能取出剩余的数据
{
System.out.println(a.next());
}
}
}
2.set使用迭代器Iterator
package collection; import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet; /**
* Created by wyy on 2017/2/20.
*/
public class SetTest {
public static void main(String[] args) { //set常用的方法:
Set set = new HashSet();
set.add("wq");
set.add("er");
set.add("er");
set.add("gee");
set.add("wdd");
set.add("3242");
System.out.println(set);
Set sortedSet = new TreeSet(set); //添加的元素必须是有效,即可比较排序的,用compareTo
/* sortedSet.add(new SetTest());
报错:collection.SetTest cannot be cast to java.lang.Comparable add的元素必须是可以比较的*/
System.out.println(sortedSet); //[3242, er, gee, wdd, wq],列表的第二次输出已按字母顺序排序。
String a="a";
String b="a";
System.out.println(a.hashCode());//
System.out.println(b.hashCode());// Iterator iterator=set.iterator();//创建一个集合的迭代器,用来取元素
while (iterator.hasNext()){
Object obj = iterator.next();
System.out.println(obj); } }
}
3.map使用迭代器,共有4种方法
package collection; import java.util.*; /**
* Created by wyy on 2017/2/21.
*/
public class MapTest {
public static void main(String[] args) {
Map<Integer,String> map=new HashMap<>();
map.put(1,"wo");
map.put(2,"chi");
map.put(3,"xi");
map.put(4,"gua");
System.out.println(map.size());
/*方法1:使用set存储key的值,然后用for循环获取value的值*/
Set<Integer> set=map.keySet();//获取所有key的值
for (int i:set
) {
String value=map.get(i); //获取value的值
System.out.println(value); } /*方法2:使用Map.entrySet<>构造iterator遍历key和value*/
Iterator<Map.Entry<Integer,String>> it=map.entrySet().iterator();
while (it.hasNext()){
Map.Entry<Integer,String> entry=it.next();
System.out.println("the key is:"+entry.getKey()+",and the value is:"+entry.getValue()); } /*方法3:推荐,通过Map.entrySet遍历key和value,特别是大容量时 */
for (Map.Entry<Integer,String> en:map.entrySet()){
System.out.println("the key is:"+en.getKey()+",and the value is:"+en.getValue());
} /* 方法4:只能得到value的值 */
for (String v1:map.values()
) {
System.out.println("the value is:"+v1);
} }
}
java基础知识5--集合类(Set,List,Map)和迭代器Iterator的使用的更多相关文章
- Java基础知识Set、List、Map的区别
就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是相对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...
- Java基础知识总结(超级经典)
Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...
- 毕向东—Java基础知识总结(超级经典)
Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...
- 沉淀,再出发:Java基础知识汇总
沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...
- java基础知识一览(二)
一.java基础知识 1.一个文件中只能有一个public的类,因为他的类名要求和文件名相同. 2.classpath变量可以设置其它目录下的类. 例如:类文件所在目录是:F:\Javajdk,那么没 ...
- 黑马毕向东Java基础知识总结
Java基础知识总结(超级经典) 转自:百度文库 黑马毕向东JAVA基础总结笔记 侵删! 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部 ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
- JAVA基础第五章-集合框架Map篇
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- Java基础知识回顾之七 ----- 总结篇
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...
- JAVA基础知识|lambda与stream
lambda与stream是java8中比较重要两个新特性,lambda表达式采用一种简洁的语法定义代码块,允许我们将行为传递到函数中.之前我们想将行为传递到函数中,仅有的选择是使用匿名内部类,现在我 ...
随机推荐
- Windbg查看调用堆栈(k*)
无论是分析程序崩溃原因,还是解决程序hang问题,我们最常查看的就是程序调用堆栈.学会windbg调用堆栈命令,以及理解堆栈中的各个参数的意义就显得至关重要. 上图就是一个典型的Win ...
- 读书笔记 之 《阿里巴巴Java开发手册》
一.前言 这本书主要定义了一些代码的规范以及一些注意事项.我只根据我自己的不足,摘录了一些内容,方便以后查阅. 二.读书笔记 命名 1.代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符 ...
- Virtualbox虚拟机Ubuntu共享文件夹设置 自动挂载
1. 安装增强功能包(Guest Additions) 安装好Ubuntu 14.04 后,运行Ubuntu并登录.然后在VirtualBox的菜单里选择"设备(D)" -> ...
- Sass之Compass学习笔记
compass Compass是Sass的工具库,就好像jQuery是js的库一样. sass有了compass的配合,就会更加事半功倍. Sass本身只是一个编译器,Compass在它的基础上,封装 ...
- [js高手之路]设计模式系列课程-组合模式+寄生组合继承实战新闻列表
所谓组合模式,就是把一堆结构分解出来,组成在一起,现实中很多这样的例子,如: 1.肯德基套餐就是一种组合模式, 比如鸡腿堡套餐,一般是是由一个鸡腿堡,一包薯条,一杯可乐等组成的 2.组装的台式机同理, ...
- EAGO科技人工智能+澳洲MSPL外汇平台招商
天下财经 首席运营商 EAGO外汇人工智能简介:我们将历史数据导入算法引擎,加入因子(外汇中使用的各种技术指标及各个国家的货币政策等)让计算机通过二元遗传基因.深度神经网络等算法,由机器自主深度学习. ...
- POI设置excel添加列下拉框
POI在生成excel模板时需要为列添加下拉框,我写了两个方法. @ 方法一:适用任何情况,不受下拉框值数量限制.但是需要通过引用其它列值. 思路大概如下: 1.创建一个隐藏的sheet页,用于存放下 ...
- javaScript手记(01)
--------------------javaScript基础1.嵌入页面的方式 1.行间事件(主要用于事件): <input type="button" name=&qu ...
- 深入浅出数据结构C语言版(17)——有关排序算法的分析
这一篇博文我们将讨论一些与排序算法有关的定理,这些定理将解释插入排序博文中提出的疑问(为什么冒泡排序与插入排序总是执行同样数量的交换操作,而选择排序不一定),同时为讲述高级排序算法做铺垫(高级排序为什 ...
- webservice时间类型XMLGregorianCalendar和Date的转换
//ISO日期转换为UTC日期 public XMLGregorianCalendar xmlToDate(Date date){ GregorianCalendar cal = new Gregor ...