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();
                    }
                };
            }
        };
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JAVA高级架构

Java HashMap 遍历方式性能探讨

关于HashMap的实现这里就不展开了,具体可以参考 JDK7与JDK8中HashMap的实现 JDK8之前,可以使用keySet或者entrySet来遍历Ha...

42512
来自专栏Java后端技术栈

初探Java源码之LinkedList

上篇文章我们分析了常见的ArrayList源码,它的内部是由一个数组来实现的。那么今天,我们来分析另一个常见的类LinkedList。本文分析都来自Java8。...

1232
来自专栏IT可乐

Java数据结构和算法(十四)——堆

  在Java数据结构和算法(五)——队列中我们介绍了优先级队列,优先级队列是一种抽象数据类型(ADT),它提供了删除最大(或最小)关键字值的数据项的方法,插入...

37011
来自专栏一枝花算不算浪漫

Java中常见数据结构Map之LinkedHashMap

3193
来自专栏皮皮之路

【JDK1.8】JDK1.8集合源码阅读——IdentityHashMap

3799
来自专栏java一日一条

Java程序员们最常犯的10个错误

Arrays.asList()会返回一个ArrayList对象,ArrayList类是Arrays的一个私有静态类,而不是java.util.ArrayList...

571
来自专栏小二的折腾日记

LeetCode-49-Group-Anagrams

输入一个字符串数组,输出的是:将相同字符的字符串放在一个数组的二维数组。相同字符的处理,基本就是要对字符串排序的。然后需要考虑的就是排序好的那一个字符串怎么存的...

741
来自专栏郭耀华‘s Blog

Java集合框架(五)—— Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap

Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和v...

2917
来自专栏个人分享

LinkedHashMap的实现原理(复习)

   LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不...

1124
来自专栏一英里广度一英寸深度的学习

线性排序算法-堆排序 (2)

在学数据结构的时候,链表、堆栈、树三种数据结构印象最深刻。当时理解有误区,堆栈被当成一种结构,可能因为堆栈有同样的特性——只关心堆顶或栈顶的元素。

1713

扫码关注云+社区

领取腾讯云代金券