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.Mapmap是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,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+工具类 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |