Java基础――集合(二)――迭代器、Map集合

         接上篇,《Java基础――集合(1)――集合体系和Collection》

4.迭代器的使用

使用步骤:

         1、通过集合对象获得迭代器对象。

         2、通过迭代器对象判断。

         3、通过迭代器对象获得。

迭代器原理

         由于多种集合的数据结构不同,所以存储方式不同,所以,取出方式也不同。

         这个时候,我们就把判断和获得功能定义在了1个接口中,将来,遍历哪一种集合的时候,只要该集合内部实现这个接口便可。

迭代器源码

          

public interface Iterator
{
publicabstract boolean hasNext();
publicabstract Object next();
}

publicinterface Collection
{
publicabstract Iterator iterator();
}

publicinterface List extends Collection
{

}

publicclass ArrayList implements List
{
publicIterator iterator()
{
returnnew Itr();
}

privateclass Itr implements Iterator
{
publicboolean hasNext(){…}
publicObject next(){…}
}
}

Collection存储字符串和自定义对象并通过迭代器遍历

                   1、存储字符串

Collectionc = new ArrayList();
c.add("hello");
c.add("world");
c.add("java");

Iteratorit = c.iterator();
while(it.hasNext())
{
Strings = (String)it.next();
System.out.println(s);
}

 

                   2、存储自定义对象(Student类的代码省略)

Collection c=newArrayList();
Student s1=newStudent("林青霞",26);
c.add("s1");

Iteratorit=c.iterator();
while(it.hasNext())
{
Strings=(String)it.next();
System.out.println(s);
}

ListIterator迭代器是Iterator的子接口

            所以List的遍历方式共有3种

                   1、Iterator迭代器

                   2、ListIterator迭代器

                   3、普通for+get()

5.Map

map是1个键值对情势的集合。它的元素都是有键和值组成。Map的键(key)是唯1的,(value)可以重复。


Map的功能:

                   A:添加功能

                                     V put(K key ,V value) :当key在集合中不存在是,添加元素;当key存在时替换元素

                   B:判断功能

                                     booleancontainsKey (Object key) :判断指定的键是不是在集合中存在

                                     BooleancontainsValue(Object value):判断指定的值是不是在集合中存在

                                     BooleanisEmpty() :判断集合是不是为空

                   C:删除功能

                                     Voidclear():清除所有键值对数据

                   D:获得功能

                                     Objectget (Object key) :根据键获得值

                                     Set<K> keyset(): 所有键的集合

                                     Collection<V>values() :所有值的集合

                  E:长度功能

                                     Intsize()

 

Map包括HashMap、HashTable和TreeMap。其中,HashTable已基本被HashMap取代,这里不做讨论。

Map遍历的两种方式:(导图上面已有,这里直接上代码了)

键找值:

public static void main(String[] args) {
Map<String,Integer>map = new HashMap<String,Integer>();
map.put("2阳",23);
map.put("2峥",24);
map.put("2光",25);
Set<String> keys=map.keySet(); //把键其中起来,存入到set集合中.
for(Stringkey:keys){ //遍历键集合,获得每个键。增强for
Integervalue=map.get(key); //让键去找值 get(Object key)
System.out.println(key+"***"+value);
}
}

键值对:

public static void main(String[] args) {
Map<String,Integer>map = new HashMap<String,Integer>();
map.put("2阳",23);
map.put("2峥",24);
map.put("2光",25);

Set<Map.Entry<String,Integer>> set=map.entrySet(); //获得键值对集合。Set<> entrySet()
for(Map.Entry<String,Integer> me:set){ //遍历键值对集合,获得到每个键值对。增强for,迭代器
Stringkey=me.getKey(); //通过键值对获得键getKey()
Integervalue=me.getValue(); //通过键值对获得值getValue()
System.out.println(key+"***"+value);
}
}

             

            未完待续,下篇为泛型+增强for+工具类

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » Java基础――集合(二)――迭代器、Map集合

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡