关于OOP中集合的理解

来源:互联网 发布:java导出文件到桌面 编辑:程序博客网 时间:2024/05/26 02:20

集合框架

                                                    Collection 接口                                                                                       Map接口

                         List接口                                                       Set接口                  

  ArrayList类              LinkedList类                    HashSet类            TreeSet类          HashMap类        Hashtable类

List接口定义

List接口是Collection的子接口,它可以保存重复、有序的元素

常用子类有ArrayList Vector

(1)ArrayList

List list=new ArrayList();//可以往集合里面添加对象,字符串,数字等,但是它线程异步,性能较高。

(2)LinkedList

LinkedList表示的是链表操作类,它同时实现了List和Queue接口,存放元素按照先进先出方式排序

LinkedList linkedList=new LinkedList();

(3) Vector

Vector是线程同步的,性能较低,且当容量需要增长时,默认增长为原来的一倍,而ArrayList是原来的一半

List list=new Vector(5);//List接口引用实现类的实例

(4)栈

栈继承了Vector,且对Vector进行了拓展,并采用先进后出的数据存储方式

Stack stack=new Stack();实例化一个栈对象

stack.push("java");

Set接口常用的子类

HashSet类是Set接口的子类,其储存方式是无序不重复的,

Set set=new HashSet();

set.add("apple");//添加元素

Iterator

Iterator是迭代集合的迭代器主要方法有 hasNext() 、 next()

//调用set.Iterator方法返回对set中的元素进行迭代的迭代器

Iterator iterator=set.iterator();

//判断迭代器中是否有元素可迭代

while(iterator.hasNext()){

//iterator.next()是返回迭代器的下一个元素

System.out.println(iterator.next());

Map接口

Map接口不同于Collection、Set、List接口,他是单一操作一对对象,其中的每个元素使用键值对(key-value)的形式存储于集合中的,但是同时又必须设置key和value的类型

(1)HashMap

HashMap采用键值对形式存储元素,且元素存储后是无序的,HashMap中不允许出现重复键,但是可以出现空键和空值

Map map=new HashMap();

map.put("bookName","java");

map.put(null,"nothing");//出现空键

map.put("price",50);

map.put("price",80)//出现重复键时,后面的一个键会覆盖前面的一个键

Collection col=map.values();//取出Map中全部的value

然后进行迭代循环

while(iterator.hasNext()){

//iterator.next()是返回迭代器的下一个元素

System.out.println(iterator.next());


Hashtable

采用键值对的形式存储元素,其元素的存储是无序的,键不允许重复不允许出现空键和空值,线程同步,效率较低。



0 0
原创粉丝点击