zoukankan      html  css  js  c++  java
  • Java程序员的日常 —— 《编程思想》持有对象

    集合框架可以说是Java里面必备的知识点了,日常的使用中也会遇到各种情况需要使用到集合。下面就简单介绍下各种集合的使用场景:

    List

    List可以看做是数组,实现的方式有两种:

    • ArrayList 适合随机访问
    • LinkedList 适合做插入删除操作

    Queue和Stack

    这两种数据结构都可以通过LinkedList来实现

    Map

    Map用于保存键值对,常用的实现方式有:

    • HashMap 使用散列表实现
    • TreeMap 基于红黑树,保证键的排序
    • LinkedHashMap 基于链表的哈希,能保证插入的顺序性

    Set

    与Map相比,set不接受重复的值

    实现的方式与Map类似。

    工具类

    其实就俩,Collections以及Arrays,有空就需要看看。

    技巧

    首先可以通过iterator遍历列表以及map。用户也可以自己定义iterator实现倒序遍历。

    如:

    class ReversibleArrayList<T> extends ArrayList<T>{
    	public ReversibleArrayList(Collection<T> c){
    		super(c);
    	}
    	public Iterable<T> reversed(){
    		return new Iterable<T>() {
    			public Iterator<T> iterator(){
    				return new Iterator<T>(){
    					int current = size() -1 ;
    					public boolean hasNext(){
    						return current > -1;
    					}
    					public T next(){
    						return get(current--);
    					}
    					public void remove(){
    						throw new UnsupportedOperationException();
    					}
    				};
    			}
    		};
    	}
    }
    
  • 相关阅读:
    HDOJ 3547 DIY Cube 解题报告
    一些经典的期望问题

    人生
    BZOJ 4341 [CF253 Printer] 解题报告
    BZOJ 4302 Buildings 解题报告
    OI 回忆录
    PyQt实现测试工具
    PyQt:eg4
    pyQt: eg3
  • 原文地址:https://www.cnblogs.com/xing901022/p/5540347.html
Copyright © 2011-2022 走看看