集合(Collection)与迭代器(Iterator)

这个大家都应该是不陌生了,我本来想介绍一下,不过,我想了一下,我说的,绝对没有《Think In Java》说的好,所以我就引用下面的话,然后,我举例测试,并附代码于后。
[img]https://p-blog.csdn.net/images/p_blog_csdn_net/fenglibing/75e6f2605a6241598f959778a99cc09d.png[/img]
[img]https://p-blog.csdn.net/images/p_blog_csdn_net/fenglibing/3fbed4404aa1433ea369debb3e4746d4.png[/img]

测试用例:

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.TreeMap;
import java.util.Vector;


public class TestColleaction {

public TestColleaction() {
// TODO Auto-generated constructor stub
}
/List类/
void testArrayList()
{
ArrayList al=new ArrayList();
al.add(1);
al.add(2);
al.add(3);
Iterator it=al.iterator();//用迭代器将其迭代化,将其序列化为一个序列,
//这样就可以遍历整个序列而不必关心底层结构
System.out.println(al.size());
System.out.println(it.toString());
while(it.hasNext())
{
System.out.println(it.next());
}
}
/**
* Vector是同步、线程安全的,所以如果需要的是速度,并且不在多线程环境中使中,最好选ArrayList
* ArrayList是非同步,当然也不是线程安全的
* 且每次Vector容量的自动扩展是按100%扩展,但是ArrayList是按50%扩展,这样使用ArrayList
* 就会节省内存空间
*/
void testVector()
{
Vector vector=new Vector();
vector.add(1);
vector.add(2);
vector.add(3);
vector.add(4);
//System.out.println(ll.peekFirst());//读第一个值
//System.out.println(ll.peek());//默认永远读第一个,通常用于循环中
//System.out.println(ll.peek());
Iterator it=vector.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
/*
* LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,
* insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),
* 队列(queue)或双向队列(deque)。
*/
void testLinkedList()
{
LinkedList ll=new LinkedList();
ll.add(1);
ll.add(2);
ll.add(3);
ll.add(4);
ll.addFirst(5);//链表操作可以进行前插或者是后插,中间任意插入
ll.addLast(6);
//System.out.println(ll.peekFirst());//读第一个值
//System.out.println(ll.peek());//默认永远读第一个,通常用于循环中
//System.out.println(ll.peek());
ll.pop();//把第一个弹出栈
ll.push(10);//压入栈
Iterator it=ll.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
/List类/
/Map类/
void testHashMap()
{
HashMap hm=new HashMap();
//HashMap及Hashtable都是散列表,不可以排序,就算是排好了序也会被打乱
hm.put(1, null);//可以放入空值
hm.put(2, "21");
hm.put(3, "33");
hm.put(4, "w434");
hm.put(5, "5we");
hm.put(6, "df6");
hm.put(7, "7we");
hm.put(8, "re8");
//Map类都要先转换为最老的迭代Collection后,才能够转换为新的迭代Iterator
Collection c=hm.values();
Iterator it=c.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
void testHashTable()
{
Hashtable ht=new Hashtable();
//ht.put(1, null);//不可以放入空值,这里会报错,并且Hashtable是同步的
//HashMap及Hashtable都是散列表,不可以排序,就算是排好了序也会被打乱
ht.put(2, "21");
ht.put(3, "33");
ht.put(4, "w434");
ht.put(5, "5we");
ht.put(6, "df6");
ht.put(7, "7we");
ht.put(8, "re8");
Collection c=ht.values();
Iterator it=c.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
void testTreeMap()
{
TreeMap tm=new TreeMap();
//ht.put(1, null);//不可以放入空值,这里会报错,并且Hashtable是同步的
//TreeMap可以自动排序
tm.put(2, "21");
tm.put(3, "33");
tm.put(4, "w434");
tm.put(5, "5we");
tm.put(6, "df6");
tm.put(7, "7we");
tm.put(8, "re8");
Collection c=tm.values();
Iterator it=c.iterator();
//输出将会按参数自动排序
while(it.hasNext())
{
System.out.println(it.next());
}
}
/Map类/
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TestColleaction tc=new TestColleaction();
//tc.testArrayList();
tc.testVector();
//tc.testLinkedList();
//tc.testHashMap();
//tc.testHashTable();
//tc.testTreeMap();
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值