Java学习之容器(2)---Iterator和Collections

Iterator迭代器

Iterator为容器提供了一种通用的遍历接口。
其常用方法有:next(),hasNext(),remove()

  • next():用于获取Iterator对象的值
  • hasNext():检测是否有下一个节点

遍历List:

for(Iterator<String> iter = l1.iterator();iter.hasNext(); ) {
			String temp = iter.next();
			System.out.println(temp);
		}

遍历Set:

for(Iterator<String> iter = s1.iterator();iter.hasNext(); ) {
			String temp = iter.next();
			System.out.println(temp);
		}

遍历Map(两种方法):

//第一种遍历方式,获取键值对
Set<Entry<String,String>> ss = m1.entrySet();
for(Iterator<Entry<String,String>> iter = ss.iterator();iter.hasNext(); ) {
	Entry<String,String> temp = iter.next();
	System.out.println(temp.getKey()+"--"+temp.getValue());
}
		
//第二种遍历Map的方式,获取键Key
Set<String> keySet = m1.keySet();
for(Iterator<String> iter = keySet.iterator();iter.hasNext(); ) {
	String temp = iter.next();
	System.out.println(temp+"--"+m1.get(temp));
}

遍历方法汇总:

List:

//方法一:普通for循环
for(int i=0;i<list.size();i++){//list为集合的对象名
    String temp = (String)list.get(i);
    System.out.println(temp);
}

//方法二:增强for循环(使用泛型!)
for (String temp : list) {
System.out.println(temp);
}

//方法三:使用Iterator迭代器(1)
for(Iterator iter= list.iterator();iter.hasNext();){
    String temp = (String)iter.next();
    System.out.println(temp);
}

//方法四:使用Iterator迭代器(2)
Iterator  iter =list.iterator();
while(iter.hasNext()){
    Object  obj =  iter.next();
    iter.remove();//如果要遍历时,删除集合中的元素,建议使用这种方式!
    System.out.println(obj);
}

Set:

//方法一:增强for循环
for(String temp:set){
System.out.println(temp);
}

方法二:使用Iterator迭代器
for(Iterator iter = set.iterator();iter.hasNext();){
    String temp = (String)iter.next();
    System.out.println(temp);
}

Map:

//方法一:根据key获取value
Map<Integer, Man> maps = new HashMap<Integer, Man>();
Set<Integer>  keySet =  maps.keySet();
for(Integer id : keySet){
System.out.println(maps.get(id).name);
}

//方法二:使用entrySet
Set<Entry<Integer, Man>>  ss = maps.entrySet();
for (Iterator iterator = ss.iterator(); iterator.hasNext();) {
    Entry e = (Entry) iterator.next(); 
    System.out.println(e.getKey()+"--"+e.getValue());

Collections工具类

注意区分Collection和Collections!!!
类 java.util.Collections 提供了对Set、List、Map进行排序、填充、查找元素的辅助方法。

  1. void sort(List) //对List容器内的元素排序,排序的规则是按照升序进行排序。若要按照自定义的方式排序使用comparable接口
  2. void shuffle(List) //对List容器内的元素进行随机排列。
  3. void reverse(List) //对List容器内的元素进行逆续排列 。
  4. void fill(List, Object) //用一个特定的对象重写整个List容器。void fill(List, Object) //用一个特定的对象重写整个List容器。
  5. int binarySearch(List, Object)//对于顺序的List容器,采用折半查找的方法查找特定对象。int binarySearch(List, Object)//对于顺序的List容器,采用折半查找的方法查找特定对象。

猜你喜欢

转载自blog.csdn.net/Arthur_____/article/details/88101460