有谁能说明一下java中map、迭代器Iterator的用法 如什么样的数据放在map中比较合适,它放在其它容器比有什么特别之处等; Iterator可以用在集合中,还能用在什么地方呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 key-value 对可以考虑放在 Map 里面,比如你想做一个英汉词典小程序,就可以这么做。 Java中的范型.給你貼我以前的學習代碼 1 import java.util.Map; 2 import java.util.HashMap; 3 import java.util.HashSet; 4 import java.util.Set; 5 import java.util.Iterator; 6 7 8 class Hashmaptest { 9 10 11 public static void main(String[] args) { 12 13 Map<String, String> map = new HashMap<String, String>(); 14 map.put("key1", "value1"); 15 map.put("key2", "HashMap value2"); 16 17 System.out.println(map.get("key2")); 18 19 Set<String> set = new HashSet<String>() ; 20 set.add("this is HashSet test1") ; 21 set.add("this is HashSet test2") ; 22 23 24 25 Iterator<String> iter = set.iterator() ; 26 while (iter.hasNext()) { 27 System.out.println(iter.next()); 28 } 29 for(String str: set){ 30 System.out.println(str); 31 } 32 33 34 } 35 } map是键-值对应,我知道,我想知道的是什么情况下用键值对,用数组或是其它二维容器不行吗 http://blog.csdn.net/XXKKFF/archive/2007/01/18/1486459.aspx map是键-值对应,我知道,我想知道的是什么情况下用键值对,用数组或是其它二维容器不行吗以上方法也可以,不过还要自己写检索方法,而map自动会帮你完成检索工作。 感觉map用于“键值对”这种用法很直观,不需要太多讨论吧?类似于字典之类的,直觉用map就OK了。至于Iterator,本义是“迭代器”,即对于多个元素的集合,依次枚举出它的所有元素,每个元素只被访问一次,且没有遗漏。那么,只要是“由多个元素组成的”,都可以引入Iterator咯,如Set、List、Map,或是你自已写的任何“由多个元素组成的类”,当然,这种情况下就需要你自已扩展Iterator接口来实现全体的“迭代器”了!^_^ 看来大家都是多面手啊,呵呵,学Unix的Java也是杠杠的啊 其实,我也不会Map集合使用Iterator迭代器 反正我用循环能遍历出来就行了吧。。 Iterator it = map.entrySet().iterator(); 这样来就好迭代啦 迭代器的用法一般是:Iterator iterator = Class1.getIterator();while( iterator.hasNext() ) { Class2 i = iterator.next(); // TODO: } 在arraylist类里,有个实现了Iterator接口的内部类,当你调用了Iterator方法,它会返回这个内部类,因为它实现了iterator接口,所以,会有hasnext,next,和remove三个方法,所以,你一个A对象(arraylist), 一旦用了iterator方法,就会返回一个B(itertor对象)给你,而你对这个对象的remove,A对象也会变。你会发现,collection继承了iterable接口,iterable就有一个iterator方法,所有实现collection的类都必须间接或直接地实现这个方法。我没有去看还有哪些地方还有用iterator方法,但你可以去找一下有哪个类实现了iterable接口语法上来讲,任何继承了iterable接口的类都可以用iterator,我个人感觉上,只有类似数组样的类才要实现iterable. map:key——value通常要索引时会用到就像字典里的通过拼音查字一样。 分不清iterator和foreach有什么区别 反正用foreach的多谢(iteraor还有要多写一句 Iterator it = list.iterator();) 初学java,但是向写出个简单的 都快疯了,我是菜鸟,谁能告诉我这是为什么? 关于void数据类型 面板切换问题---急,在线等!!! 匿名局部類的方法重寫問題 这个用IDE怎么实现 又没分了。新手数据库连接问题 请教一个关于javascript在表格中增加一行的问题 JDBC连接出错 如何才能调试JAVA程序呀 为什么我用dispose()关闭了当前窗口,但在控制台中看到程序还在继续运行? java语音引擎
給你貼我以前的學習代碼
1 import java.util.Map;
2 import java.util.HashMap;
3 import java.util.HashSet;
4 import java.util.Set;
5 import java.util.Iterator;
6
7
8 class Hashmaptest {
9
10
11 public static void main(String[] args) {
12
13 Map<String, String> map = new HashMap<String, String>();
14 map.put("key1", "value1");
15 map.put("key2", "HashMap value2");
16
17 System.out.println(map.get("key2"));
18
19 Set<String> set = new HashSet<String>() ;
20 set.add("this is HashSet test1") ;
21 set.add("this is HashSet test2") ;
22
23
24
25 Iterator<String> iter = set.iterator() ;
26 while (iter.hasNext()) {
27 System.out.println(iter.next());
28 }
29 for(String str: set){
30 System.out.println(str);
31 }
32
33
34 }
35 }
以上方法也可以,不过还要自己写检索方法,而map自动会帮你完成检索工作。
类似于字典之类的,直觉用map就OK了。至于Iterator,本义是“迭代器”,即对于多个元素的集合,依次枚举出它的所有元素,每个元素只被访问一次,且没有遗漏。
那么,只要是“由多个元素组成的”,都可以引入Iterator咯,如Set、List、Map,或是你自已写的任何“由多个元素组成的类”,当然,这种情况下就需要你自已扩展Iterator接口来实现全体的“迭代器”了!^_^
反正我用循环能遍历出来就行了吧。。
while( iterator.hasNext() ) {
Class2 i = iterator.next();
// TODO:
}
所以,你一个A对象(arraylist), 一旦用了iterator方法,就会返回一个B(itertor对象)给你,而你对这个对象的remove,A对象也会变。
你会发现,collection继承了iterable接口,iterable就有一个iterator方法,所有实现collection的类都必须间接或直接地实现这个方法。
我没有去看还有哪些地方还有用iterator方法,但你可以去找一下有哪个类实现了iterable接口
语法上来讲,任何继承了iterable接口的类都可以用iterator,我个人感觉上,只有类似数组样的类才要实现iterable.
通常要索引时会用到
就像字典里的通过拼音查字一样。