1.集合框架<容器----储存对象的对象>
1. interface Collection{接口:元素都是Object}
---子接口<List/Set>
方法:1. boolean add(Object o);//将对象o放入集合中,成功返回true,否则返回false;
2. boolean contains(Object o)//判断o元素是否存在集合中
3. boolean isEmpty()://判断集合是否是空的
4. Iterator iterator()://创建迭代器,用于迭代遍历
5. remove(Object o)://删除o元素;
6. void clear();//清空
7. int size();//得到集合的大小
1.List<List元素有顺序,可以重复>-----(可以用下标遍历)
1. void add(Object o)//添加o元素到集合中
2. void add(int index,Object o)//把o添加到index下标位置
3. Object get(int index)//得到index位置上的对象
4. void set(int index,Object o)//将index位置上的元素改变o对象
5. int indexof(Object o)//返回元素o的下标,如果不存在,则返回-1
6. remove(int pos)//删掉pos下标的元素
<实现类>1.ArrayList:查询快----删除快(数组实现---线程安全)
<Vector:数组实现,线程安全,重量级>
2.LinkedList:查询慢----删除慢(链表实现)
2.Set<Set元素无序,对象内容不能重复>-----
方法全部继承自Collection接口
/*----------------------------迭代遍历---------------------*/
Iterator it = set.iterator();
while(id.hasNext()){
Object o = it.next();
.....//对单一对象进行操作
}
/*----------------------------迭代遍历-------------------*/
<实现类>1.HashSet:(元素不能重复}(必须覆盖hashCode方法,和equals方法;)
//比较对象是否相同,虚拟机会先比较元素的HashCod,如果其值相等,然后再调用equals方法进行比较.
<String 类,Sun公司已经位置写好了hashCode方法>
自定义对象放入HashSet,为了保证元素不重复,需要:
①覆盖hashCode(),保证相同对象返回相同的hashCode,(尽量)保证不同对象返回不同的 int;
②覆盖equals(),保证相同对象,返回true;
2.LinkedHashSet(元素不能重复,但是保留元素顺序,);
<子接口>1. interface SortedSet;//其中的元素不可重复,且经过排序
--<所以其中的对象必须实现Comparable接口,并实现其中的comparableTo方法>
<实现类> TreeSet //因其中的元素经过排序,所以其中对象需要实现Comparable接口
2. interface Map {}---储存键值对<key-value>
键不可以重复,值可以重复
1.Object get(Object key)//获得键key对应的值
2.put(Object key,Object value)//将键值对加入Map中,如果元素已经存在,则覆盖原有值
3.remove(Object key)//删除key对应的键值对
4.Set keySet();//返回Map中的所有键的Set集合
5.Collection values();//返回所有元素值的Collection集合
6.containsKey(Object key)/containsValue(Object value);//是否包含key/value
7.size();//返回集合中元素的个数
8.isEmpty();//判断是否为空
9.clear();//清空集合
10.entrySet():// 返回键值对的Set集合,其中存放的是Map.Entry,用来遍历键值对
/*----------------------------Map.Entry-------------------*/
interface Map.Entry
1.getKey();//获得键
2.getValue();//获得值
3.setValue();//修改其中的值
/*----------------------------Map.Entry-------------------*/
<实现类>1.HashMap:1.2(其中的元素无顺序,的键不能重复,采用的是hashCode方法,
所以其中的键对象需要覆盖hashCode和equals方法)允许空指针 null 作为键或者值
2.Hashtable:1.0,线程安全的重量级---/*小写t*/,不允许空指针<面试题,类名区别空指针>
3.LinkedHashMap:其中的键对象依然不能重复,但是会保留元素的顺序
4.properties:一种map其中的键和值都是字符串类型
<子接口>SortedMap://其中的元素对键进行了排序,
<实现类> TreeMap //其中的键对象需要实现Comparable接口
3.Collections: //这是个集合类,其中包装了很多对集合常用的操作方法,
(如果要排序,找大小,需要集合中的对象实现Comparable接口);
4.排序:
TreeSet 自动排序 根据排序规则,相同的元素会过滤掉
List Collections.sort
要求集合中的对象必须实现Comparable接口,实现compareTo方法
< 返回负数
> 返回正数
== 返回0
注意:compareTo方法和equals方法必须逻辑一致 (compareTo返回0,equals必须返回true)
5.增强循环接口 for--each-----编译器自动将for-each翻译为迭代遍历
6.泛型:为了类型安全.是一个模版编程.实现类型安全的集合;
1. interface Collection{接口:元素都是Object}
---子接口<List/Set>
方法:1. boolean add(Object o);//将对象o放入集合中,成功返回true,否则返回false;
2. boolean contains(Object o)//判断o元素是否存在集合中
3. boolean isEmpty()://判断集合是否是空的
4. Iterator iterator()://创建迭代器,用于迭代遍历
5. remove(Object o)://删除o元素;
6. void clear();//清空
7. int size();//得到集合的大小
1.List<List元素有顺序,可以重复>-----(可以用下标遍历)
1. void add(Object o)//添加o元素到集合中
2. void add(int index,Object o)//把o添加到index下标位置
3. Object get(int index)//得到index位置上的对象
4. void set(int index,Object o)//将index位置上的元素改变o对象
5. int indexof(Object o)//返回元素o的下标,如果不存在,则返回-1
6. remove(int pos)//删掉pos下标的元素
<实现类>1.ArrayList:查询快----删除快(数组实现---线程安全)
<Vector:数组实现,线程安全,重量级>
2.LinkedList:查询慢----删除慢(链表实现)
2.Set<Set元素无序,对象内容不能重复>-----
方法全部继承自Collection接口
/*----------------------------迭代遍历---------------------*/
Iterator it = set.iterator();
while(id.hasNext()){
Object o = it.next();
.....//对单一对象进行操作
}
/*----------------------------迭代遍历-------------------*/
<实现类>1.HashSet:(元素不能重复}(必须覆盖hashCode方法,和equals方法;)
//比较对象是否相同,虚拟机会先比较元素的HashCod,如果其值相等,然后再调用equals方法进行比较.
<String 类,Sun公司已经位置写好了hashCode方法>
自定义对象放入HashSet,为了保证元素不重复,需要:
①覆盖hashCode(),保证相同对象返回相同的hashCode,(尽量)保证不同对象返回不同的 int;
②覆盖equals(),保证相同对象,返回true;
2.LinkedHashSet(元素不能重复,但是保留元素顺序,);
<子接口>1. interface SortedSet;//其中的元素不可重复,且经过排序
--<所以其中的对象必须实现Comparable接口,并实现其中的comparableTo方法>
<实现类> TreeSet //因其中的元素经过排序,所以其中对象需要实现Comparable接口
2. interface Map {}---储存键值对<key-value>
键不可以重复,值可以重复
1.Object get(Object key)//获得键key对应的值
2.put(Object key,Object value)//将键值对加入Map中,如果元素已经存在,则覆盖原有值
3.remove(Object key)//删除key对应的键值对
4.Set keySet();//返回Map中的所有键的Set集合
5.Collection values();//返回所有元素值的Collection集合
6.containsKey(Object key)/containsValue(Object value);//是否包含key/value
7.size();//返回集合中元素的个数
8.isEmpty();//判断是否为空
9.clear();//清空集合
10.entrySet():// 返回键值对的Set集合,其中存放的是Map.Entry,用来遍历键值对
/*----------------------------Map.Entry-------------------*/
interface Map.Entry
1.getKey();//获得键
2.getValue();//获得值
3.setValue();//修改其中的值
/*----------------------------Map.Entry-------------------*/
<实现类>1.HashMap:1.2(其中的元素无顺序,的键不能重复,采用的是hashCode方法,
所以其中的键对象需要覆盖hashCode和equals方法)允许空指针 null 作为键或者值
2.Hashtable:1.0,线程安全的重量级---/*小写t*/,不允许空指针<面试题,类名区别空指针>
3.LinkedHashMap:其中的键对象依然不能重复,但是会保留元素的顺序
4.properties:一种map其中的键和值都是字符串类型
<子接口>SortedMap://其中的元素对键进行了排序,
<实现类> TreeMap //其中的键对象需要实现Comparable接口
3.Collections: //这是个集合类,其中包装了很多对集合常用的操作方法,
(如果要排序,找大小,需要集合中的对象实现Comparable接口);
4.排序:
TreeSet 自动排序 根据排序规则,相同的元素会过滤掉
List Collections.sort
要求集合中的对象必须实现Comparable接口,实现compareTo方法
< 返回负数
> 返回正数
== 返回0
注意:compareTo方法和equals方法必须逻辑一致 (compareTo返回0,equals必须返回true)
5.增强循环接口 for--each-----编译器自动将for-each翻译为迭代遍历
6.泛型:为了类型安全.是一个模版编程.实现类型安全的集合;