关于Java的容器的简单理解

java.util接口 Collection<E>Collection定义了下面的方法这些方法。

booleanadd(E e)          确保此 collection 包含指定的元素(可选操作)。
 booleanaddAll(Collection<? extendsE> c)          将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
 voidclear()          移除此 collection 中的所有元素(可选操作)。
 booleancontains(Object o)          如果此 collection 包含指定的元素,则返回true
 booleancontainsAll(Collection<?> c)          如果此 collection 包含指定 collection 中的所有元素,则返回 true
 booleanequals(Object o)          比较此 collection 与指定对象是否相等。
 inthashCode()          返回此 collection 的哈希码值。
 booleanisEmpty()          如果此 collection 不包含元素,则返回true
 Iterator<E>iterator()          返回在此 collection 的元素上进行迭代的迭代器。
 booleanremove(Object o)          从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
 booleanremoveAll(Collection<?> c)          移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。
 booleanretainAll(Collection<?> c)          仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
 intsize()          返回此 collection 中的元素数。
 Object[]toArray()          返回包含此 collection 中所有元素的数组。
<T> T[]
toArray(T[] a)          返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。
这些实现了Collection接口的类或者是接口,可以使用 Collection C = new ArrayList(); 的方式来进行调用,这样可以大大加强程序的灵活性。这样的程序在你想用别的容器的时候,可以直接更改后面的具体的实现,不用去更改其他的地方。 2 .list :单个存放,可以重复 3.map:一对一对的存放,使用Key——Valus键和值一一对应的方式进行管理 注:这里的重复是指的eqals()不同。 public interface Iterator<E>

  • 迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
  • 方法名称得到了改进。 
booleanhasNext()          如果仍有元素可以迭代,则返回true
 Enext()          返回迭代的下一个元素。
 voidremove()          从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
Collection c=new HashSet();
c.add(new Name("fffl","1111"));
c.add(new Name("fZ","12"));
c.add(new Name("fff3","1113"));
for(Iterator i=c.iterator();i.hasNext();){
Name name = (Name)i.next();
If(name.getFirstName().length()<3){
i.romove();//这里必须使用i.romove!
}
}

Array是使用数组的方式对数据进行存储,在某块内存中开辟一个连续的存储单元,导致在读取的时候只需知道下标值就能很快的找到要读取的内容。但是在写入的时候,如果要往中间插入一个数据,要将要插入的位置的元素的后面的所有元素都全部向后一移动一个单位,这就需要很长的时间。

1.set :单个存放,有顺序不可以从重复 

Iterator对象称为迭代器,Iterator是同一来遍历Collection中所有元素的方法.

在使用Iterator遍历的时候,Iterator只能调用Iterator所提供的方法,例:

如何简单的选择使用哪个容器:

Array读快写慢
list写快读慢
hash读写都一般

list是使用的链表的方式进行存储的数据,这时候你给出的查找用的下标值就没有什么用了,为了查找一个元素程序需要将存储的每一个元素和你要查找的那个元素相比较以找到元素的位置。而改的时候只要将目标元素的前后元素记录内存中地址的区域进行更改一下就可以达到快速修改的目的了。

hash使用哈希值用来找到元素位于内存中的大体地址,以达到查找和读写的目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值