java常用容器(集合)的总结

一开始接触容器时,总感觉里面东西很多很难。学完总结一下,常用的无非以下几种,方法也无需全部记住,记住几个关键的即可,其中红色的方法务必记住。

Collection                                           
├List                                      
│   ├LinkedList                              
│   ├ArrayList 
│   └Vector                                    
│        └Stack                                            
└Set

Hashset                                                     
Map 
   ├Hashtable 
   ├HashMap 
   └WeakHashMap

1、Collection:(常用的子接口Set和List)

常用的方法:

int size();       boolean isEmpty();     void clear();    boolean contains(Object element);  

equals boolean add(Object element);     boolean remove(Object element) ;    boolean containsAll(Collection c);

boolean addAll(Collection c);    boolean removeAll(Collection c);    boolean retainAll(Collection c);   //求交集

eg:size():此时容器当中的元素个数;    contains(Object o):是否包含给定的o值;

Array读快改慢

Linked改快读慢

Hash搜索极快,遍历极慢

Tree插入/搜索都比较快,适合做索引



(1)Set:无序不可重复;常用的实现类:HashSet,TreeSet;

无序:第一次随机,接下来如果没有其它元素的加入或退出,则一直保持这个的顺序,有别于随机;

不可重复:小心“对象”问题,必须先重写equals和hashcode()方法;hashcode()判断两个对象是否指向同一个对象;

常用方法:Set接口本身不提供额外的方法,所有的方法都来自Collection;

常用实现类:HashSet(),TreeSet();



(2)List:有序可以重复;常用的实现类:ArrayList;LinkedList;

常用方法:除了Collection里面的方法外,还有如下:

Object get(int index);  //通过下标输出下标对应的值

Object set(int index, Object element); //通过下标去替代相应的下标值    

void add(int index, Object element);   //表示从index位置插入给定的o值       add(Oject o);    

Object remove(int index);     //删除下标所对应的元素

int indexOf(Object o);    //获取o值在给定容器中第一个出现的索引

int lastIndexOf(Object o);    // 获取0值在给定容器中最后出现的索引

remove(int index);//表示通过下标去移除对应下标的值 ,

注意:如果给定的值有Integer类型,不以具体的值来移除,而是以下标对应的值进行移除;remove(Object o);

注意:ArrayList里面有两个add(),remove()?答:一个方法来自Collection;另一个来自自身的方法.



(3)Map接口:它是由K,V值组合而成,且K值不能重复;

常用的实现类:HashMap:无序;

TreeMap:按照K值大小来进行输出;

LinkedHashMap:按照输入的先后顺序进行输出;

常用的方法:

Object put(Object key, Object value);

Object get(Object key);    //返回key值所对应的value值;

Object remove(Object key);

boolean containsKey(Object key); //包含键值,常用来判断用户名是否存在的方法

boolean containsValue(Object value);

int size();

boolean isEmpty();

void putAll(Map t);

void clear();

keyset():把Map里面的K值赋值给Set接口;

values():把Map里面的V值赋值给Collection接口;

时间: 2024-10-27 07:33:52

java常用容器(集合)的总结的相关文章

Java 常用List集合使用场景分析

Java 常用List集合使用场景分析 过年前的最后一篇,本章通过介绍ArrayList,LinkedList,Vector,CopyOnWriteArrayList 底层实现原理和四个集合的区别.让你清楚明白,为什么工作中会常用ArrayList和CopyOnWriteArrayList?了解底层实现原理,我们可以学习到很多代码设计的思路,开阔自己的思维.本章通俗易懂,还在等什么,快来学习吧! 知识图解: 技术:ArrayList,LinkedList,Vector,CopyOnWriteAr

java之容器(集合)

知识点: 容器的作用和概览 数组总结回顾 作用 是一种容器,可以在其中放置对象或基本类型数据.从而,实现使用数组管理一组对象. 优势 是一种简单的线性序列,可以快速的访问数组元素,效率高.如果从效率和类型检查的角度讲,数组是最好的. 劣势 不灵活:容量事先定义好,不能随着需求的变化而扩容. 比如:我们在一个用户管理系统中,要把今天注册的所有用户取出来,那么这个用户有多少个?我们在写程序时是无法确定的. 因此,数组远远不能满足我们的需求. 我们需要一种灵活的,容量可以随时扩充的容器来装载我们的对象

java:容器/集合(Map(HashMap,TreeMap))

HashMap: *Map接口:采用是键值对的方式存放数据.无序 *常见的实现类: *--HashMap:基于哈希表的 Map 接口的实现. *常用的构造方法: * HashMap()构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap. * HashMap(int initialCapacity) 构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap *常用方法: * put(K key, V value)在此映射中关联指定值与指定键. *

java:容器/集合()

/** * Collection接口 * 常用的方法: * add(Object e) 确保此 collection 包含指定的元素(可选操作). * size():获取集合中元素的个数 * remove(Object e):移除元素 * clear():清空集合中元素 * contains(Object e):判断集合中是否包含指定的元素 * isEmpty():判断集合是否为空 * iterator():获取集合对应的迭代器. * --List接口:不唯一,有序(插入顺序) * ----Ar

java常用工具集合

1.集合和数组的区别: ①集合中只能存储引用型数据,如果存储基本类型会自动装箱:数组既可以存储基本类型也可以存储引用类型的数据. ②集合长度不固定,可任意扩充:数组长度固定. 2.Java的集合体系: (1)单列集合:(顶层是Collection接口) ①List集合(list是接口,要想使用里面的方法必须创建子类对象) :最常用的子类是ArrayList List集合中元素可重复,有序.通过创建子类对象使用:List list=new ArrayList(); eg:向List集合中添加三个元

Java 关于容器集合等数据结构详情图解,一目了然

建议把图片下载下来保存之,网页展示不开...

[转]Java中常用的集合—初学者的你不可错过的精编整理

集合一直都是项目中非常常见的,我是一个Android开发者,集合对于我来说,在项目中使用的次数非常之多,因为使用的多,熟能生巧,所以这里呢!就给那些初学者整理一下Java当中常用的集合吧!   因为此篇文章是给初学者看到,所以对于集合的认识,我们就不从内存的角度去分析了,等你Java学到一定的时候,再去学习一下集合的底层实现,这会让成为一名更加牛的Java程序员.   在整理之前呢,我们先聊一聊为什么集合会这么常用?,集合这个概念,我们初次接触是在高中的数学当中,高中的集合具有以下知识点:  1

JAVA常用集合源码解析系列-ArrayList源码解析(基于JDK8)

文章系作者原创,如有转载请注明出处,如有雷同,那就雷同吧~(who care!) 一.写在前面 这是源码分析计划的第一篇,博主准备把一些常用的集合源码过一遍,比如:ArrayList.HashMap及其对应的线程安全实现,此文章作为自己相关学习的一个小结,记录学习成果的同时,也希望对有缘的朋友提供些许帮助. 当然,能力所限,难免有纰漏,希望发现的朋友能够予以指出,不胜感激,以免误导了大家! 二.稳扎稳打过源码 首先,是源码内部的成员变量定义以及构造方法: 1 /** 2 * Default in

链表与哈希表基本概念及Java常用集合

-链表- 是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域. 相比于线性表顺序结构,操作复杂.线性表的链式存储表示,有一个缺点就是要找一个数,必须要从头开始找起,十分麻烦. -哈希表- 概念 哈希表(Hash Table)也叫散列表,是根据关键码值(Key Value)而直接进行访问的数据