Java程序员的日常 —— 《编程思想》持有对象

时间:2022-04-22
本文章向大家介绍Java程序员的日常 —— 《编程思想》持有对象,主要内容包括List、Queue和Stack、Map、Set、工具类、技巧、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

集合框架可以说是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();
                    }
                };
            }
        };
    }
}