java常用容器(集合)的总结
2015-07-12 21:03
645 查看
一开始接触容器时,总感觉里面东西很多很难。学完总结一下,常用的无非以下几种,方法也无需全部记住,记住几个关键的即可,其中红色的方法务必记住。
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接口;
本文出自 “不是_英雄” 博客,请务必保留此出处http://notahero.blog.51cto.com/10306439/1673534
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接口;
本文出自 “不是_英雄” 博客,请务必保留此出处http://notahero.blog.51cto.com/10306439/1673534
相关文章推荐
- IDEA设置Eclipse编译(用于忽略有编译错误的Class)
- Java 8 中HashMap源码分析
- 《Spring技术内幕》笔记-第五章 数据库操作组件的实现
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- JNA调用C动态库dll、so
- java-缓冲流对输入输出设备的包装
- 【JAVA】【NIO】3、Java NIO Channel
- 单例设计模式
- Spring的69个知识点
- 【java设计模式】观察者模式
- Java 代理模式
- Java语言基础1--练习题
- java用自定义类型作为HashMap的键
- java基础
- Java语言基础1--专题课 拆数
- 第三章:Java语言基础II 第9、10节 综合案例 算命程序
- 第三章:Java语言基础II 第2\3\4节 For入门(求和思想)
- 第三章:Java语言基础II 第1节 For入门
- 第三章:Java语言基础II 第1节 For入门
- struts2 CVE-2013-4316 S2-019 Dynamic method executions Vul