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,是没有问题的。相比于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开销大,除非非常接近表的端点。

时间: 2024-08-27 22:04:07

Collection与List的相关文章

SharePoint 2010/SharePoint 2013 Custom Action: 基于Site Collection 滚动文字的通知.

应用场景: 有时候我们的站点需要在每个页面实现滚动文字的通知,怎么在不修改Master Page的情况下实现这个功能?我们可以使用Javascript 和 Custom Action 来实现. 创建一个Custom Action.主要使用到 Location = 'ScriptLink' 属性, 该属性可以动态的加载JavaScript 文件链接和代码块到模板页.代码如下: <Elements xmlns="http://schemas.microsoft.com/sharepoint/&

从头认识java-15.2 Collection的常用方法

这一章节我们来介绍一下Collection的常用方法. 我们下面以ArrayList为例. package com.ray.ch14; import java.util.ArrayList; import java.util.Iterator; public class Test { public static void main(String[] args) { ArrayList<Integer> rtnList = new ArrayList<Integer>(); rtnL

Java基础知识强化之集合框架笔记11:Collection集合之迭代器的原理及源码解析

1. 迭代器为什么不定义成一个类,而是定义为一个接口 ?  答:假设迭代器定义的是一个类,这样我们就可以创建该类的对象,调用该类的方法来实现集合的遍历.但是呢? 我们想想,Java中提供了很多的集合类,而这些集合类的数据结构是不同的,所以,存储的方式和遍历的方式应该是不同的.进而它们的遍历方式也应该不是一样的,最终,就没有定义迭代器类.        而无论你是哪种集合,你都应该具备获取元素的操作,而且,最好在辅助于判断功能,这样,在获取前,先判断.这样的话就不容易出错.也就是说,判断功能和获取

一大波Java来袭(六)——Java集合之Collection和Iterator接口

本文主要介绍Collection和Iterator接口. 一.Collection和Iterator接口 Collection接口是List.Set..Queue的父接口. Collection  c = new ArrayList(); 父类指向子类对象!优点:多态.动态链接.向上转型. 面向接口编程,被调用者对于调用者是完全透明的,可以随意替换子类,屏蔽了子类特有的东西. Demo:详细请参加:Java API文档 二.如何依次遍历集合中的元素? 普通情况下,当我们把一个对象"丢进"

java Iterator Iterable Collection AbstractCollection Map关系

java.lang Interface Iterable<T>  实现该接口就可以使用for-each循环. java.util Interface Iterator<E>  用于遍历Collection,有hasNext(),next(),remove()方法. java.util Interface Collection<E>  整个Collection体系中的根接口,父类接口是Iterable.可以生成Iterator. java.util Interface M

Mapped Statements collection does not contain value for 问题的解决

在做SSM项目的时候,遇到MyBatis抛出的一个异常: Mapped Statements collection does not contain value for org.lyk.vo.mapping.NewsNS.findById. 2017-09-01 21:03:48,979 INFO [org.springframework.context.support.ClassPathXmlApplicationContext] - Refreshing org[email protecte

Mybatis 高级结果映射 ResultMap Association Collection

作者:ilovejava_2010 MyBatis的创建基于这样一个思想:数据库并不是您想怎样就怎样的.虽然我们希望所有的数据库遵守第三范式或BCNF(修正的第三范式),但它们不是.如果有一个数据库能够完美映射到所有应用程序,也将是非常棒的,但也没有.结果集映射就是MyBatis为解决这些问题而提供的解决方案.例如,我们如何映射下面这条语句? <!-- Very Complex Statement --> <select id="selectBlogDetails"

collection 源码

转自:http://blog.csdn.net/longlong2015/article/details/48174421 http://blog.csdn.net/mra__s__/article/details/55517204 JDK 1.7源码阅读笔记(三)集合类之LinkedList 标签: jdklinkedlist源码阅读 2015-09-02 09:58 644人阅读 评论(0) 收藏 举报  分类: JDK源码(6)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录

java集合之Collection架构

Java集合之Collection架构 首先,我们对Collection进行说明.下面先看看Collection的一些框架类的关系图: Collection是一个接口,它主要的两个分支是:List 和 Set.List和Set都是接口,它们继承于Collection.List是有序的队列,List中可以有重复的元素:而Set是数学概念中的集合,Set中没有重复元素!List和Set都有它们各自的实现类. 如ArrayList  LinkedList  Vector  Stack 为了方便,我们抽

我所理解Java集合框架的部分的使用(Collection和Map)

所谓集合,就是和数组类似--一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接口,长虚线表示抽象类,实线表示类,箭头表示实现接口或者继承)(在网络上找的图,不知道原作者,侵权请联系我删除)(总之,关系很复杂,所以不用记得这个图,只是用来吓吓人而已的). 下面贴上个人理解之精简版之Collection(集)和Map(地图?暂且这么理解吧),话说思维导图蛮好用,以下是两幅思维导图