Java集合整理(主要是常用集合的使用)

开篇

之前写过一篇java的数据结构,里面的内容有点不够清晰,今天在这边整理出java标准库里面的一些数据结构,也就是java中的集合。主要是为了实际的应用,所以如果想看源码解析的童鞋可以关闭这篇博客了。

collection接口

盗张图,很好的展示了collection

List

ArrayList

初始化的四种方法

        ArrayList a = new ArrayList();
        a.add("xiao");
        a.add("fei");
        a.add("java");
        System.out.println(a);

        List<Integer> b = new ArrayList(4);
        b.add(4);
        b.add(3);
        b.add(2);
        b.add(1);
        System.out.println(b);


        List<Integer> c = new ArrayList(Arrays.asList(1,2,3,4,5,6));
        System.out.println(c);

常用方法示例

import java.util.*;

public class ListTest
{
    public static void main(String[] args) 
    {
        List books = new ArrayList();
        //向books集合中添加三个元素
        books.add(new String("轻量级Java EE企业应用实战"));
        books.add(new String("疯狂Java讲义"));
        books.add(new String("疯狂Android讲义"));
        System.out.println(books);

        //将新字符串对象插入在第二个位置
        books.add(1 , new String("疯狂Ajax讲义"));
        for (int i = 0 ; i < books.size() ; i++ )
        {
            System.out.println(books.get(i));
        }

        //删除第三个元素
        books.remove(2);
        System.out.println(books);

        //判断指定元素在List集合中位置:输出1,表明位于第二位
        System.out.println(books.indexOf(new String("疯狂Ajax讲义")));  //①
        //将第二个元素替换成新的字符串对象
        books.set(1, new String("LittleHann"));
        System.out.println(books);

        //将books集合的第二个元素(包括)
        //到第三个元素(不包括)截取成子集合
        System.out.println(books.subList(1 , 2));
    }

LinkedList

LinkedList 与 ArrayList 一样实现 List 接口,只是 ArrayList 是 List 接口的大小可变数组的实现,LinkedList 是 List 接口链表的实现。基于链表实现的方式使得 LinkedList 在插入和删除时更优于 ArrayList,而随机访问则比 ArrayList 逊色些。

LinkedList 实现所有可选的列表操作,并允许所有的元素包括 null。

除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。

此类实现 Deque 接口,为 add、poll 提供先进先出队列操作,以及其他堆栈和双端队列操作。

所有操作都是按照双重链接列表的需要执行的。在列表中编索引的操作将从开头或结尾遍历列表(从靠近指定索引的一端)。

同时,与 ArrayList 一样此实现不是同步的。

常用api的使用

set

Hashset

参考博客

可以解决寻找数组中第一个重复数的问题,但是需要额外的空间,如果不允许额外空间,就要像剑指offer里面那样。

关于equal方法的覆盖

Map

HashMap

参考博客

猜你喜欢

转载自blog.csdn.net/Ding_xiaofei/article/details/81454192