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表达式采用一种简洁的语法定义代码块,允许我们将行为传递到函数中.之前我们想将行为传递到函数中,仅有的选择是使用匿名内部类,现在我 ...
随机推荐
- JavaScript入门之Canvas(一): 2D Context
概念 Canvas 是 HTML5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形.例如,它可以用于绘制图形,制作照片,创建动画,甚至可以进行实时视频处理或渲染.自HTML5添 ...
- ctrl+c 和 ctrl+z 的区别
ctrl+c 和 ctrl+z 的区别 ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样. ctrl+c是强制中断程序的执行, 而ctrl+z的是将任务中断,但是此任务并没有结束,他仍然 ...
- Powerdesigner 连接mysql 在指定的DSN中,驱动程序和应用程序之间的体系结构不匹配 SQLSTATE = IM014
系统环境: WIN7 64位系统, 用Powerdesigner 连接MySQL 逆向工程时 报错 "在指定的DSN中,驱动程序和应用程序之间的体系结构不匹配 SQLSTATE = IM01 ...
- 【Tomcat】batch获得war包
功能: 将maven项目打包复制到tomcat/webapps set git=C:\Users\zhengwenqiang\git set tomcat=e:\tomcat7.0.64 c: cd ...
- c# 后台get post请求
//get请求 public static TResult Get<TResult>(string host, string url) { var httpClient = new Htt ...
- vue.js基础知识篇(3):计算属性、表单控件绑定
第四章:计算属性 为了避免过多的逻辑造成模板的臃肿不堪,可使用计算属性来简化逻辑. 1.什么是计算属性 <!DOCTYPE html><html lang="en" ...
- .NET Core多平台开发体验[1]: Windows
微软在千禧年推出 .NET战略,并在两年后推出第一个版本的.NET Framework和IDE(Visual Studio.NET 2002,后来改名为Visual Studio),如果你是一个资深的 ...
- node.js的fs核心模块读写文件操作 -----由浅入深
node.js 里fs模块 常用的功能 实现文件的读写 目录的操作 - 同步和异步共存 ,有异步不用同步 - fs.readFile 都不能读取比运行内存大的文件,如果文件偏大也不会使用readFil ...
- AFN和SDWebImage请求网络图片的一点问题
问题1.AFN 处理有关图片相关的请求的问题 在使用AFN Post网络图片的时候发现NSLocalizedDescription=Request failed: unacceptable conte ...
- Android学习记录:界面设计
本片文章将记录进行android界面开发时积累的知识 包括 activity全屏 activity跳转 button设计 逐个输入编辑框设计 d0710 合并旧文章总结更新 d0721 添加内容 == ...