Java基础针对自己薄弱环节总结06(集合全)
2015-09-03 17:27
281 查看
java中的集合体系
一、Collection(单列)
1、List(有序,可重复)
1)、ArrayList
底层数据结构是数组,查询快,增删慢。线程不安全,效率高。
2)、Vector
底层数据结构是数组,查询快,增删慢。线程安全,效率低。
3)、LinkedList
底层数据结构是链表,查询慢,增删快。线程不安全,效率高。
2、Set(可能无序,肯定唯一)
1)、HashSet
底层数据结构是哈希表。线程不安全,效率高。
怎么保证唯一性的呢?
它依赖两个方法:hashCode()和equals()
顺序:
首先判断hashCode()值是否相同。
相同:继续走equals(),看返回值
如果true:就不添加到集合。
如果false:就添加到集合。
不同:就添加到集合。
2)、TreeSet
底层数据结构是二叉树。线程不安全,效率高。
怎么保证唯一性的呢?是根据返回是否是0。
怎么保证排序的呢?两种方式
自然排序(元素具备比较性)
实现Comparable接口
比较器排序(集合具备比较性)
实现Comparator接口
二、Map(双列 底层结构是针对键有效,跟值无关)
1、HashMap
底层数据结构是哈希表。线程不安全,效率高。允许null键和值
怎么保证唯一性的呢?
它依赖两个方法:hashCode()和equals()
顺序:
首先判断hashCode()值是否相同。
同:继续走equals(),看返回值
如果true:就不添加到集合。
如果false:就添加到集合。
不同:就添加到集合。
2、Hashtable
底层数据结构是哈希表。线程安全,效率低。不允许null键和值
怎么保证唯一性的呢?
它依赖两个方法:hashCode()和equals()
顺序:
首先判断hashCode()值是否相同。
同:继续走equals(),看返回值
如果true:就不添加到集合。
如果false:就添加到集合。
不同:就添加到集合。
3、TreeMap
底层数据结构是二叉树。线程不安全,效率高。
怎么保证唯一性的呢?是根据返回是否是0。
怎么保证排序的呢?两种方式
自然排序(元素具备比较性)
实现Comparable接口
比较器排序(集合具备比较性)
实现Comparator接口
相关文章推荐
- Java十六进制与十进制间相互转换
- 避免代码冗余,使用接口和泛型重构Java代码
- java_Static函数
- Java 中常用缓存Cache机制的实现
- Spring注解@Scope("prototype") Spring在Action上面注解@Scope("prototype")
- 在eclipse下创建maven版的hello world
- java可变参数
- Spring mvc的相关问题
- JDK5至JDK8的新特性
- java_对象(this和成员变量和Static修饰符)
- Java利用接口和类来实现类似函数指针的功能
- Java插入数据库乱码的解决方案
- Java中对字符串的操作
- Java使用InetAddress类获取主机名和IP地址
- Java之--------JUnit软件测试技术(工具)Annotation1
- Java 程序死锁问题原理及解决方案(来源IBM开发者论坛本文作者文章)
- maven -- 问题解决(一)解决eclipse中maven项目出现的问题
- java_对象(构造函数和构造代码块)
- Android:Plug-in com.android.ide.eclipse.adt was unable to load class android
- (原创)JAVA多线程一传统多线程