黑马程序员技术交流社区
标题:
自我复习第六天
[打印本页]
作者:
威威是超人
时间:
2016-10-5 17:57
标题:
自我复习第六天
集合分为单例集合和多例集合
(单例)Collection 接口:list接口 set接口
Collection:
方法: 增 add
删 remove,clear
查 isEmpty,contins,size
其他方法:
addAll:将一个集合所有元素添加到另外一个集合,谁调用,谁改变
removeAll:从一个集合中移除另一个结合的所有元素,谁调用谁改变
containsAll:判断一个集合是否全部包含另一个集合的所有元素
将集合转为数组:Collection类的 toArray
将数组转为集合:Arrays类中的 asList
迭代器:就是一个个去访问集合中的元素,Iterator iterator();
Collection 的超级接口是Iterable;所以Collection具有iterator()方法,iterator()方法是返回一个Iterator对象。
Iterator 的方法有,hasNext():是否有元素存在
next():取集合中的元素
list接口:
实现类有:ArrayList,Vector,LinkedList
特点: 1.有序,是指元素添加顺序和输出顺序的一致
2.可以根据索引来访问元素,可以得到指定下表的元素
3.元素可以重复
特有方法: 增 add
删 remove,返回的是删除的元素
改 set 把谁替换返回谁
获取get获取
特有迭代器:ListIterator,ListIterator是Iterator的子接口
四种遍历方式:
方式1:
Object[] toArray();
方式2:
Iterator iterator();
方式3:
Object get(int index)
方式4:
for(:){}
解决并发修改异常:
迭代器自己遍历自己添加
集合自己遍历自己添加
Arrays类的一个方法:asList():将数组转为集合
常见的数据结构:
栈:先进后出
队列:先进先出
数组:挨个存放,只要有下表就能访问,但是插入时会有大量数据移动
访问方便,速度快,但是,插入和删除时,效率低,所以以查询为主。
链表:查询速度慢,每次都从头开始寻找,但是增删效率高
数:二叉树,有两个分叉。用于排序和查找
哈希表:hash存储,查找最快的方式
ArrayList:底层结构是数组,查询快,增删慢,线程不安全,效率高
Vector:底层结构是数组,查询快,增删慢,线程安全,效率低
特有方法:
增 addElement
获取 elementAt,指定下标的元素
枚举 elements
LinkedList:底层结构是链表,查询慢,增删快,线程不安全,效率高
特有方法:
增 addFirst,addLast
获取 getFirst,getLast
删除 removeFirst,removeLast
泛型:在Java的JDK中见到<>就是泛型,
泛型类:就是把泛型定义在类上
泛型方法:把泛型定义在方法上
泛型接口:把泛型定义在接口上
set:接口,实现类有 HashSet,TreeSet
特点:不包含重复元素,无序性是指,输入顺序和输出顺序的不一致性。
HashSet:底层结构是哈希表
特点:不保证有序(不保证元素插入的顺序和输出的顺序一致)
保证元素的唯一性
保证元素唯一性:
必须重写,HashCode和equals方法。
TreeSet:底层结构是二叉树
特点: 1.使用元素的自然顺序对元素进行排序。
2.保证元素的唯一性。
要保证元素的唯一性:
在类中:要实现接口Compareabl接口中的CompareTo方法
1:自然排序
public TreeSet(); //实现Comparable接口
(比较器)接口传参:匿名内部类,new Comparator(){
public void compare(){
}
}
2:比较器排序
public TreeSet(Comparator<? super T> comparator); //实现Comparator接口
Map 集合: 将键映射到值的对象
一个映射不能包含重复的键
每个键最多只能映射到一个值
方法: 增,改 put
删 remove,clear
判断 containsKey,containsValue,isEmpty
获取 size,get,keySet,values,entry
遍历方式1:
Set<> set = map.keySet();
for( : ){
values =
}
方式2:
Set<Map.Entry<k,v>> entrySet()
k getKey
v getValue
注意:enrty是Map的一个内部接口
Interface Map{
interface Entry{
}
}
HashMap:只是存键值对,不需要对键排序,就用该集合
键的底层结构:Hash表
特点:键唯一,无序
特点:1.建是哈希表结构,可以保证建的唯一性。
HashMap的建使用HashSet集合来处理,所以自定义对象,必须重写equals和hashCode方法
TreeMap:存键值对,同时需要对键排序,则用该集合
键的底层结构:二叉树
特点:键唯一,有序
特点: 1.TreeMap的底层是二叉树,TreeMap的建使用TreeSet来保证唯一性。所以自定义对象需要重写Comparable或者Comparator中的方法
2.TreeMap可以对建进行排序
Arrays类:操作数组的工具类
Collections类:操作集合的工具类,该类所有方法都是静态的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2