1. 程式人生 > >list和set、map的差別叠代器讀取數據

list和set、map的差別叠代器讀取數據

lin style tor shm obj span col ring value

package collectiondemo;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class TestIt {

    public static void main(String[] args) {
        // TODO 自動生成的方法存根
        //常見的集合(線性的集合)
        //List接口就是線性存儲的接口,並且是有序的
        //實現線性的存儲的接口的繼承類:ArrayList,LinkedList,Vetor
        
//ArrayList是類似於數組的存儲,可以直接通過索引訪問 List<Integer> list = new ArrayList<Integer>(); list.add(12); list.add(23); list.add(34); list.add(19); list.add(26); //LinkedList讀取是通過鏈接點來讀取的,讀取效率較ArrayList低 //ArrayList讀取數據效率高,但是對於的數據的刪除和增加比LinkedList效率低
list= new LinkedList<Integer>(); list.add(12); list.add(23); list.add(34); list.add(19); list.add(26); System.out.println(list.get(2)); //Vetor的效率介於前兩者之間的。它的是線程安全的。 } }
package collectiondemo;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class TestIt2 { public static void main(String[] args) { // TODO 自動生成的方法存根 //Set和Map的存儲方式,兩者都是無序的存儲(底層都是無序的) //非線性存儲的是不能通過索引訪問 //無序不是按放進去的順序讀取的,按照hash的算法來排序的 //是不能存放重復的元素 Set<Integer> mysets = new HashSet<Integer>(); mysets.add(12); mysets.add(23); mysets.add(9); mysets.add(15); mysets.add(15); //訪問非線性的需要叠代器 Iterator<Integer> its = mysets.iterator(); while(its.hasNext()){ System.out.println(its.next()); } //map的底層也是set,只是它的鍵是按照set無序存儲的,也是不能重復的 Map<String,Integer> stumaps = new HashMap<String,Integer>(); stumaps.put("張三", 12); stumaps.put("李四", 22); stumaps.put("王五", 32); Set<String> keys= stumaps.keySet(); Iterator<String> keyits = keys.iterator(); while(keyits.hasNext()){ String key =keyits.next(); Object objvalue = stumaps.get(key);//通過鍵得到值 System.out.println("鍵:"+key+",值:"+objvalue); } } }

list和set、map的差別叠代器讀取數據