发一下牢骚和主题无关:
集合和数组的区别?
*集合:
长度是可以变的
集合只能存储对象类型
集合可以存储多种引用数据类型的元素
*数组:
长度是固定的。
数组可以存储对象类型,也可以存储基本数据类型
数组存储的多个元素是同一种数据类型
Collection 接口
1,添加元素
添加单个元素:boolean add(Object obj);
添加多个元素:boolean addAll(Collection c);
2,判断元素
判断元素是不是存在:boolean contains(Object obj);
判断一个集合的元素师否包含在当前集合中:boolean containAll(Collection c);
判断集合是不是为空:boolean isEmpty();
3,删除元素
移除所有元素 :void clear();
移除单个元素:boolean remove(Object o);
移除多个元素:boolean removeAll(collection c)
4,获得元素
返回集合上的一个迭代器:Iterator iterator():
Iterator it = con.iterator();
while(it.hasNext()){
S.O.P
it.next()
}
5,交集
交集:boolean retainAll(Collection c)
6,集合元素个数
元素个数:int size();
7,把集合转成数组
Object[] toArray();
*Set:元素有序(存入顺序和掏出顺序分歧),元素可以重复
*HashSet:底层数据结构是哈希表。
如何保证元素的独一性呢?
它依赖两个方法:hashCode()和equals()
首先判断哈希值是不是相同:
不同:就把元素添加到集合中。
相同:继承进入equals方法比拟
返回true,说明元素重复,不存。
返回false,就把元素添加到集合
*TreeSet:底层数据结构是二叉树。
可以让集合中的元素排序。
如何保证元素的独一性的呢?
它是根据比拟返回的值是0,说明元素是重复的,就不添加。
有两种实现计划:
A:让自定义对象具有比拟性
实现Comparable接口
B:让集合具有比拟性
实现Comparator接口
如果两种情况都存在,以B为主
*List:元素无序,元素要求独一
ListIterator lit = list.listIterator();//特别方法
//迭代器容易涌现并发修改异常 在应用迭代器元素的时候,不能应用集合区操作元素,否则,就会涌现并发修改异常
信念是巍巍大厦的栋梁,没有它,就只是一堆散乱的砖瓦;信念是滔滔大江的河床,没有它,就只有一片泛滥的波浪;信念是熊熊烈火的引星,没有它,就只有一把冰冷的柴把;信念是远洋巨轮的主机,没有它,就只剩下瘫痪的巨架。
*ArrayList//遍历4种 普通for 增强for Iterator ListIterator
//掏出ArrayList中重复的元素(自定义对象)要重写 equals方法 例如:return this.age==s.age && this.name.equals(s.name);
底层数据结构式数组,查询快,增删慢。
线程不安全,效率高。
*Vector//3种普通for 增强for Enumeration
底层数据结构式数组,查询快,增删慢。
线程安全,效率低
*LinkedList
底层数据结构式链表,查询慢,增删快。
线程不安全,效率高
Map接口 : 存储的是键值对情势的元素
它的每一个元素,都是由键和值两个元素组成
键是不能有重复的,值是可以重复的
每一个键独一指向一个值
1,添加功能
put(k key, V value)
2,判断功能
boolean containsKey(Object key)
boolean containsValue(Object value)
boolean isEmpty()
3,删除功能
void clear()
remove(Object key)
4,获得功能
Set
Set
V get(Object key)
Collection
5,长度
int size()
*两种遍历方法
1,A:先获得所有丈夫的集合,keySet
B: 遍历丈夫集合,获得到每一个丈夫,增强for
C:通过每一个丈夫找到自己的妻子。get()
2,A:先获得结婚证的集合,entrySet()--Set集合的每一个元素师一个结婚证对象
B:遍历结婚证集合,获得到每一个结婚证,增强for
C:通过结婚证获得丈夫和妻子,getKey(),getValue()
*HashMap
底层数据结构是哈希表
如何保证键的独一性呢
依赖hashCode()和equals()方法
线程不安全,效率高,允许null键和值
*Hashtable
底层数据结构是哈希表
如何保证键的独一性呢
依赖hashCode()和equals()方法
线程安全,效率低,不允许null键和值
*TreeMap
底层数据结构是二叉树
如何保证键的独一性呢
两种方法
自定义元素具有比拟性
集合具有比拟性
线程不安全,效率高,允许null值,不允许null键
文章结束给大家分享下程序员的一些笑话语录: 姿势要丰富,经常上百度!
--------------------------------- 原创文章 By
集合和object
---------------------------------