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表达式采用一种简洁的语法定义代码块,允许我们将行为传递到函数中.之前我们想将行为传递到函数中,仅有的选择是使用匿名内部类,现在我 ...
随机推荐
- 直播协议 HTTP-FLV 详解
传统的直播协议要么使用 Adobe 的基于 TCP 的 RTMP 协议,要么使用 Apple 的基于 HTTP 的 HLS 协议. 今天我要向大家介绍另外一种结合了 RTMP 的低延时,以及可以复用现 ...
- java版飞机大战 实战项目详细步骤.md
[toc] 分析 飞机大战 首先对这个游戏分析,在屏幕上的物体都是飞行物,我们可以把建一个类,让其他飞行物继承这个类.游戏中应有英雄机(也就是自己控制的飞机).敌人.而敌人应该分为打死给分的飞机(就是 ...
- 安装mvn,jdk,rocketmq
附一个rocketmq各语言客户端仓库:https://github.com/apache/incubator-rocketmq-externals,我用go客户端,但是master分支的go没有pr ...
- 【Linux】管理在线用户
查看当前在线用户 [root@localhost ~]# who root pts/ -- : (111.34.103.23) 查看在线用户 [root@localhost ~]# w :: up d ...
- 【Spring 核心】高级装配
高级装配用来适应开发和生产 不同环境下的软切换 一.环境与profile 1.开发环境下的profile package com.bonc.config; import javax.sql.DataS ...
- 使用XMLHttpRequest异步通信
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 实操代码研究各种Java技术-java.toutiao.im
whatsmars https://github.com/javahongxi/whatsmars whatsmars-earth-web springmvc+velocitywhatsmars-ea ...
- 九天学会Java,第四天,循环结构
变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...
- jmeter响应断言
jmeter提供了很多种断言,本文我就介绍下我们经常使用的响应断言! 响应断言 :对服务器的响应进行断言校验 (1).应用范围Apply to : Main sample and sub-sample ...
- JSP入门必读
JSP基础知识:转自老师上课梳理的笔记,希望对大家有所帮助.有什么不妥当的地方还望大家批评指正. 特别适用于JSP入门的人员使用.1.JSP [1] 简介1.1 HTML HTML擅长显示一个静 ...