设为首页 加入收藏

TOP

Java基础面试题之工具类
2014-11-04 14:45:09 来源: 作者: 【 】 浏览:22
Tags:Java 基础 试题 工具

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差不多


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇When would you use a messaging .. 下一篇Oracle基本操作笔试面试题之索引..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: