zoukankan      html  css  js  c++  java
  • Collection与List

    集合接口

    import java.util.Iterator;
    
    
    public interface Collection <AnyType> extends Iterable<AnyType>{
    	int size ();
    	boolean isEmpty();
    	void clear ();
    	boolean contains(AnyType x );
    	boolean add (AnyType x) ;
    	boolean remove(AnyType x) ;
    	Iterator<AnyType> iterable() ;
    }
    

      实现 Iterable的接口要提供一个iterator 的方法。

    public interface Iterator<AnyType> {
    	boolean hasNext ();
    	AnyType next ();
    	void remove();
    }
    

      如果集合正在进行改变的时候,iterator的使用就不再合法。因此只有在要立即使用迭代器的时候才用,当然如果是

    用的迭代器自己的remove,是没有问题的。对JAVA集合进行遍历删除时务必要用迭代器.

    上面最好参考 :http://www.importnew.com/11038.html

    原因分析见:http://guojuanjun.blog.51cto.com/277646/1348450/

    相比于Collection的remove方法,collection的remove要先找出被删除的项才行,因此成本

    可能 更高。

    List接口子集

    public interface List<AnyType> extends Collection<AnyType> {
    	AnyType get(int index) ;
    	AnyType set(int index, AnyType newVal) ;
    	void remove (int index );
    	
    	ListIterator< AnyType>  listIterator( int pos);
    }
    

    List的两种实现 

    1.ArrayList

    可增长数组的实现。

    优点 :get/set 常数时间。

    缺点:inset/delete 代价比较大,除非是在末端进行的。

    2. LinkedList 

    双链表实现。

    优点 :insert/delete开销常数时间,这里是假设变动项的位置已知。

    缺点:不容易做索引 ,get开销大,除非非常接近表的端点。

  • 相关阅读:
    php token的生成
    php使用gearman进行任务分发
    PHP调用Python接口过程中所遇到的问题
    php结合redis实现高并发下的抢购、秒杀功能
    (转)防止表单重复提交的八种简单有效的策略
    yii防止延迟用户多次点击按钮重复提交数据
    mysql 几种日志
    神经网络模型模型转ONNX
    ResNet v2笔记
    ResNet论文笔记
  • 原文地址:https://www.cnblogs.com/chuiyuan/p/4449941.html
Copyright © 2011-2022 走看看