java.util接口 Collection<E>Collection定义了下面的方法这些方法。
boolean | add(E e) 确保此 collection 包含指定的元素(可选操作)。 | |
boolean | addAll(Collection<? extendsE> c) 将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。 | |
void | clear() 移除此 collection 中的所有元素(可选操作)。 | |
boolean | contains(Object o) 如果此 collection 包含指定的元素,则返回true。 | |
boolean | containsAll(Collection<?> c) 如果此 collection 包含指定 collection 中的所有元素,则返回 true。 | |
boolean | equals(Object o) 比较此 collection 与指定对象是否相等。 | |
int | hashCode() 返回此 collection 的哈希码值。 | |
boolean | isEmpty() 如果此 collection 不包含元素,则返回true。 | |
Iterator<E> | iterator() 返回在此 collection 的元素上进行迭代的迭代器。 | |
boolean | remove(Object o) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。 | |
boolean | removeAll(Collection<?> c) 移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。 | |
boolean | retainAll(Collection<?> c) 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。 | |
int | size() 返回此 collection 中的元素数。 | |
Object[] | toArray() 返回包含此 collection 中所有元素的数组。 | |
| toArray(T[] a) 返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。 |
- 迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
- 方法名称得到了改进。
boolean | hasNext() 如果仍有元素可以迭代,则返回true。 |
E | next() 返回迭代的下一个元素。 |
void | remove() 从迭代器指向的 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使用哈希值用来找到元素位于内存中的大体地址,以达到查找和读写的目的。