java集合List,Map,Set,Queue使用

Collection.一个独立元素的序列,这些元素都服从一条或多条规则。List必须按照插入的顺序保存元素,而Set不能有重复元素。
Map.一组成对的键值对对象,允许使用键来查找值。

有2种类型的List:
基本的ArrayList,长于随机访问元素,但是在List的中间插入和移除元素时较慢。
LinkedList,它通过代价较低在List中间插入和删除操作,提供了优化的顺序访问。LinkedList在随机访问方面相对比较慢。


迭代器Iterator
1、使用方法iterator()要求容器返回一个Iterator.Iterator将准备好返回序列的第一个元素。
2、使用next()获取序列中的下一个元素。
3、使用hashNext()检查序列中是否还有元素。
4、使用remove()将迭代器新近返回的元素删除。


Set:不保存重复的元素。
HashSet:没有排序,使用散列函数。提供最快的查询速度
TreeSet:将元素存储在红-黑树数据结构中,有排序


Map:键值对
HashMap用于快速访问,
TreeMap保持键始终处于排序状态。


Stack 栈通常指后进先出的容器(LIFO),LinkedList能够实现栈的所有功能的方法。

Queue:队列(先进先出)

    public static void testList(){
        List<Integer> list = new ArrayList<>();
        list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);list.add(6);list.add(7);
        System.out.println(list.toString());
        Iterator it = list.iterator();
        while (it.hasNext()){
           int i = (Integer) it.next();
            System.out.println(i);
        }
        System.out.println(list.toString());
        it = list.iterator();
        for (int i = 0; i < 3; i++) {
            it.next();
            it.remove();
        }
        System.out.println(list.toString());
    }

    public static void testLinkedList(){
        LinkedList<Integer> list = new LinkedList<>();
        list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);list.add(6);list.add(7);
        System.out.println(list.toString());
        System.out.println("getFirst():"+list.getFirst());
        System.out.println("getLast():"+list.getLast());
        System.out.println("element():"+list.element());
        System.out.println("peek():"+list.peek());
        System.out.println("remove():"+list.remove());
        System.out.println("removeFirst():"+list.removeFirst());
        System.out.println("poll():"+list.poll());
        System.out.println(list.toString());
        System.out.println(list.pop());
        System.out.println(list.toString());
        list.addFirst(8);
        list.offer(9);
        list.addLast(10);
        System.out.println(list.toString());
        list.push(11);
        System.out.println(list.toString());
        list.pop();
        System.out.println(list.toString());
    }

    public static void testMap(){
        Map<Integer,String> map = new HashMap<>();
        map.put(1,"10");map.put(2,"20");map.put(3,"30");map.put(4,"40");
        System.out.println(map.keySet());  // 获取键
        System.out.println(map.values());  // 获取值

        // keySet
        for (Integer i : map.keySet()){    // 根据键获取值
            System.out.println(i+"  "+map.get(i));
        }
        // entrySet
        Iterator iterator = map.entrySet().iterator();  // 获取key和value的Set
        while (iterator.hasNext()){
            Map.Entry entry = (Map.Entry) iterator.next();
            System.out.println(entry.getKey());
            System.out.println(entry.getValue());
        }
        // keySet
        Iterator it = map.keySet().iterator();
        while (it.hasNext()){
            int key = (int) it.next();
            String value = map.get(key);
            System.out.println(key+"   "+value);
        }
    }


    /**
     * 队列:先进先出
     * offer(Object o)
     * poll()
     */
    public static void testQueue(){
        Queue queue = new LinkedList();
        queue.offer(1);queue.offer(2);queue.offer(3);queue.offer(4);
        System.out.println(queue.toString());
        System.out.println(queue.poll());
        System.out.println(queue.toString());
    }
    /**
     * 栈:先进后出
     * push(Object 0)
     * pop()
     */
    public static void testStack(){
        LinkedList stack = new LinkedList();
        stack.push(1 );stack.push(2 );stack.push(3 );stack.push(4 );
        System.out.println(stack.toString());
        System.out.println(stack.pop());
        System.out.println(stack.toString());
    }

  

猜你喜欢

转载自www.cnblogs.com/zhangcece/p/8998803.html