实现Collection和Map接口的常用类的几种循环方法

来源:互联网 发布:java超市管理系统 编辑:程序博客网 时间:2024/05/01 03:24

Collection接口的特点:

1.有序性2.可重复 3.同步性
实现类的构造方法: 实现collection接口的集合是可以互相转换的。

 List:

主要用到的已实现的集合:

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

1.ArrayList:底层用数组存储, 非同步, 最适合查找操作。

循环方法:

1.1用普通的for循环进行循环控制,用list.size()控制循环次数.

 for(int i=0;i<list.size();i++){

// 增添操作      list.add(  index, E elemtnt);
//按索引取操作       list.get( index );
//按索引删除操作           list.remove(index);

}

1.2  用迭代器iterator循环,用while语句进行循环控制,it.hasNext()控制循环次数.
Iterator<string> it=list.iterator();
while(it.hasNext()){
//用it.next()输出System.out.println(it.next());
}
1.3  用增强型for循环
for( String s: list ){
// 增添操作      list.add(  index, E element );
//按索引取操作       list.get( index );
//按索引删除操作           list.remove(index);
}

2.LinkedList:底层用链表存储, 非同步,最适合增加, 删除操作。

循环方法:

2.1用普通for循环进行循环控制, 用list.size()控制循环次数.
for(int i=0;i<list.size();i++){
//常用操作 list.add(index, E element);
list.get(index);
list.getFirst();
list.getLast();
list.remove(index);
}

2.2用迭代器 iterator循环, 用it.hasNext()语句控制循环次数.

Iterator it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
2.3增强型for循环
for( String s: list){
//常用操作  
    list.add(index, E element);
    list.get(index);
    list.getFirst();
    list.getLast();
    list.remove(index);
}

3.Vector:底层用数组存储, 同步

循环方法:同ArrayList差不多。

3.1 用普通for循环控制,
for(int i=0;i<list.size();i++){
// 增添操作      list.add(  index, E elemtnt);
//按索引取操作       list.get( index );
//按索引删除操作           list.remove(index);
}
3.2 用迭代器iterator循环, 语句it.hasNext()控制循环次数
Iterator it=list.iterator();
while(it.hasNext()){
//输出 System.out.println(it.next());
}

Set:

主要用到的已实现的集合:
Set<E> set=new HashSet<E>();
1.HashSet:底层用HashMap实现,用哈希表存储,主要用来做高性能集运算,集合中的元素无序,不重复,非同步。

循环方法:

1.1用迭代器iterator循环,语句it.hasNext()控制循环次数。
Iterator it=set.iterator();
while(it.hasNext()){
//进行具体操作System.out.println(it.next());
}
1.2 用toArray方法将HashSet转为数组,再用增强型for输出
Object[] obj = set.toArray();
for(Object o : obj){
//Student为一实例对象Student s =(Student) o;
//进行具体操作System.out.println(s.toString() );
}
2.TreeSet:底层用TreeMap实现,用二叉树存储,即有序但需实现Comparator接口,最好于equals()方法一致,非同步。
2.1 用迭代器iterator循环,语句it.hasNext()控制循环次数。
Iterator it=set.iterator();
while(it.hasNext()){
//具体操作Sytem.out.println(it.next());
}
2.2 用toArray方法将TreeSet转为数组,再用增强型for输出
Object[] obj=set.toArray();
for(Object o:obj){
//Student为一实例对象Student s = (Student) o;
//进行具体操作System.out.println(s.toString());

}

Map接口的特点:

存储一组成对的键-值对象,提供key(键)-value(值)的映射,key不要求有序,不允许重复,value不要求有序,但可以重复。

1.HashMap:

循环方法:

Map<Integer,String> map=new HasMap<Integer, String>();

//1.取键值

Set<Integer> keys=map.keySet();

//2.取值集

Collection<String> values=map.values();

//3.取键值对

Set<Map.Entry<Integer,String>>entrys=map.entrySet();

用迭代器iterator循环,it.hasnext()控制循环次数

Iterator it=keys.iterator();

while(it.hasNext() ){

Integer key=it.next();

String value = map.get(key);

System.out.println(Key+"\t"+value );

}

用增强型for

Set<Map.Entry<Integer,String>>entrys=map.entrySet();

for(Map.Entry<Integer,String> entry:entry){

System.out.println(entry.getKey+"\t"+entry.getValue() );

}
2.Properties:

Properties p=System.getProperties();

循环方法:

Set<Object> keys =p.keySet();

先取键值再用增强型for循环

for(Object key:keys){

Object value=p.getProperyies((String) key);

System.out.println(key+"\t"+value);

}
直接用增强型for循环

for(Entry<Object, Object> set : p.entrySet){

System.out.println(set.getKey()+"\t"+set.getValue() );

}





























0 0
原创粉丝点击