您的位置:首页 > 其它

4.1 Collection,List,Set,Iterator,Map

2015-12-24 16:35 501 查看


4.1.1 Collection<E>

java.util.Collection<E>

看API

Collection中的元素个数不固定,可以任意扩充。

Collection的常用子类

List
Set
Queue


4.1.2 List<E>

java.util.List<E>

是Collection的子接口

List接口可以存放任意类型的数据,而且value可以重复。

List接口常用的子类:ArrayList,Vector

常用操作:

判断集合是否为空:boolean isEmpty()
查找指定对象是否存在:int indexOf(Object o),不存在返回-1
List<String> lst = new ArrayList<String>();
元素个数:lst.size();
删除操作:lst.remove(index); //删除之后index有变化
List<String> lst1 = new Vector<String>();
不需要线程安全的时候,用ArrayList

ArrayList VS Vector

ArrayListVector
推出时间jdk1.2jdk1.2
性能采用异步处理方式,性能高采用同步处理方式,性能低
thread safe非线程安全线程安全


4.1.3 Set<E>

Set接口中不能放入重复元素,但是可以排序。

Set接口的常用子类

散列存放:HashSet,排放无序

[java] view
plaincopy





Set<String> s = new HashSet<String>();

s.add("A");

s.add("B");

s.add("C");

s.add("D");

s.add("E");

s.add("F");

System.out.println(s.contains("E"));

System.out.println(s);

有序存放:TreeSet

[java] view
plaincopy





Set<String> s = new TreeSet<String>();

s.add("A");

s.add("B");

s.add("C");

s.add("D");

s.add("E");

s.add("F");


4.1.4 Iterator<E>

集合输出的标准做法是使用Iterator接口。

操作原理:

Iterator是专门的迭代输出接口,迭代输出就是将元素一个一个进行判断,判断其是否有内容,如果有则把内容取出


方法:

bool hasNext(); 如果还有元素可以迭代,返回true
E next(); 返回迭代的下一个元素
void remove(); 从迭代器指向的Collection中移除迭代器返回的最后一个元素。

[java] view
plaincopy





List<String> lists = new ArrayList<String>();

lists.add("A");

lists.add("B");

lists.add("C");

lists.add("D");

lists.add("E");

Iterator<String> iter = lists.iterator();

while (iter.hasNext()){

String str = iter.next();

if("A".equals(str)){

iter.remove();

} else{

System.out.print(str + " ");

}

}

结果打印:B C D E 4

“A”被从lists中删除了

迭代输出的时候,不能用collection去删除元素,比如说lists.remove(3); ==> 错误


4.1.5 Map<T1,T2>

保存形式

key->value, key不允许重复

常用子类:

HashMap:无序排放,value不可重复

[java] view
plaincopy





Map<String,String> map = new HashMap<String, String>();

map.put("k1","v1");

map.<span style="background-color: rgb(255, 255, 153);">put</span>("k2","v2");

map.put("k3","v3");

String str = map.<span style="background-color: rgb(255, 255, 153);">get</span>("k3");

if(map.<span style="background-color: rgb(255, 255, 153);">containsKey</span>("k1")){

System.out.println("contains key");

}

if(map.<span style="background-color: rgb(255, 255, 153);">containsValue</span>("v3")){

System.out.println("contains value");

}

Set<String> keySet = map.<span style="background-color: rgb(255, 255, 153);">keySet</span>();

Iterator<String> iter = keySet.iterator();

while (iter.hasNext()){

System.out.println(iter.next());

}

Collection<String> lstValues = map.<span style="background-color: rgb(255, 255, 153);">values</span>();

iter = lstValues.iterator();

while (iter.hasNext()){

System.out.println(iter.next());

}

Hashtable:无序排放,value可以重复
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: