collection
retainall :保留两个collection的交集。注意,如果该collection是由arrays.aslist转换而来,那么这个方法会失败。因为转换来的list接口不支持这个方法
samples:
public static void collectiontest()
{
collection c1 = new arraylist();
collection c2 = new arraylist();
c1.add("aaa");
c1.add("bbb");
c1.add("ccc");
c2.add("ddd");
c2.add("ccc");
c2.add("eee");
boolean isretainsucceed = false;
isretainsucceed = c2.retainall(c1);
system.out.println("isretainsucceed = " + isretainsucceed);
system.out.println("********** print collection c2 values ");
for (iterator iter = c2.iterator(); iter.hasnext();)
{
string s = (string) iter.next();
system.out.println("s = " + s);
}
}
enumeration
太简单,参考文档
comparator
未使用过
eventlistener
空接口
iterator
和enumeration 的不同点:
1. 允许遍历collection时删除对象
2. 方法名字可读性更好
list
实现的四个类:abstractlist, arraylist, linkedlist, vector
list 特点:
1. 允许重复元素,允许null元素
2. 推荐用iterator遍历,而不是用索引
addall : 加入collection
containsall :是否包含collection
retainall : 保留和collection的交集
sublist : 返回指定索引区间的子list
listiterator :
1. 提供元素的双向遍历,而不是单向
2. 遍历时可改变存储的元素
3. 可动态插入元素,插入的元素在当前操作元素的上一个位置
samples:
public static void listtest(){
system.out.println("**********listtest begin:");
list list = new arraylist();
list.add("aaa");
list.add("bbb");
list.add("ccc");
listiterator iter = list.listiterator();
system.out.println("**************** iterating list forward :");
while(iter.hasnext()){
string s = (string)iter.next();
system.out.println("**********element = " + s);
}
system.out.println("**************** iterating list backward :");
while(iter.hasprevious()){
string s = (string)iter.previous();
system.out.println("**********element = " + s);
}
system.out.println("**************** add element into list :");
while(iter.hasnext()){
int i = iter.nextindex();
if (i==2)
iter.add("ddd");
string s = (string)iter.next();
system.out.println("**********element = " + s);
}
system.out.println("**************** iterating list backward after add element:");
while(iter.hasprevious()){
string s = (string)iter.previous();
system.out.println("**********element = " + s);
}
system.out.println("**********listtest end:");
}
map
keyset :
返回set对象,然后可以遍历这个set。其中的每个元素都是map.entry对象
map.entry.setvalue :
在遍历entry对象时,可以改变该key对应的value值
samples:
public static void mapentrysettest(){
system.out.println("**********mapentrysettest begin:");
map map = new hashmap();
map.put("first","aaa");
map.put("second","bbb");
map.put("third","ccc");
map.put("fourth","ddd");
set set = map.entryset();
map.entry entry = null;
system.out.println("********** print values in map :");
for(iterator iter = set.iterator();iter.hasnext();){
entry = (map.entry)iter.next();
system.out.println("key is :" + entry.getkey() + " and value is :" + entry.getvalue());
entry.setvalue((string)entry.getvalue() + "_setvaluetest");
}
system.out.println("********** after set value ,iterating values in map :");
for(iterator iter = set.iterator();iter.hasnext();){
entry = (map.entry)iter.next();
system.out.println("key is :" + entry.getkey() + " and value is :" + entry.getvalue());
}
system.out.println("**********mapentrysettest end:");
}
observable and observer
暂未使用
randomaccess
空接口。实现这个接口的list实现品,表示他们支持高速的随机访问元素。如果实现这个接口,理论上
for (int i=0, n=list.size(); i < n; i++)
list.get(i);
比下面代码要快:
for (iterator i=list.iterator(); i.hasnext(); )
i.next();
set :
没什么特别的,和collection差不多
闽公网安备 35060202000074号