第二周学习笔记总结
Java.util
2.0、整体概念:
java平台提供了一个由不同接口组成的“集合”。用来操作对象,不同的接口描述不同的对象类型。
2.1、构成单位:
构成的单位主要包括接口:表示不同集合类型,是“集合”的基础;抽象类:对集合接口的部分实现。可扩展为自定义集合类;实现类:对接口的具体实现。
2.2、简单描述:
Collection接口是一组允许重复的对象。
Iterator接口,接口方法能以迭代方式逐个访问集合中各个元素,并安全的从Collection 中除去适当的元素。
List接口,继承于collection,允许重复,以元素安插的顺序来放置元素,不会重新排列。
Set接口,继承于collection,但不允许重复,使用自己内部的排列机制。
Map接口是一组成对的键-值对象,即所持有的是key-value pairs。Map中不能有重复的key。拥有自己的内部排列机制。
Comparator接口,当需要排序的集合或数组不是单纯的数字型时;可以使用Comparator或Comparable
注意:容器中的元素类型都为Object。从容器取得元素时,必须把它转换成原来的类型。
2.3、具体介绍:
2.3.1、Collection接口:
特点:用于表示任何对象或元素组。想要尽可能以常规方式处理一组元素时,就使用这一接口。
方法:(1)单元素添加、删除操作:
boolean add(Object o):将对象添加给集合
boolean remove(Object o): 如果集合中有与o相匹配的对象,则删除对象o
(2)查询操作:
int size() :返回当前集合中元素的数量
boolean isEmpty() :判断集合中是否有任何元素
boolean contains(Object o) :查找集合中是否含有对象o
Iterator iterator() :返回一个迭代器,用来访问集合中的各个元素
注意:Collection不提供get()方法。如果要遍历Collectin中的元素,就必须用Iterator。
(3)组操作 :作用于元素组或整个集合
boolean containsAll(Collection c): 查找集合中是否含有集合c 中所有元素
boolean addAll(Collection c) : 将集合c 中所有元素添加给该集合
void clear(): 删除集合中所有元素
void removeAll(Collection c) : 从集合中删除集合c 中的所有元素
void retainAll(Collection c) : 从集合中删除集合c 中不包含的元素
(4)Collection转换为Object数组 :
Object[] toArray() :返回一个内含集合所有元素的array
Object[] toArray(Object[] a) :返回一个内含集合所有元素的array。运行期返回的array和参数a的类型相同,否则需要转换为正确类型。
注意:以把集合转换成其它任何其它的对象数组。但是不能直接把集合转换成基本数据类型的数组,因为集合必须持有对象。
2.3.1、Iterator接口:
特点:Collection 接口的iterator()方法返回一个 Iterator。Iterator接口方法能以迭代方式逐个访问集合中各个元素,并安全的从Collection中除去适当的元素。
方法:(1)boolean hasNext(): 判断是否存在另一个可访问的元素
Object next(): 返回要访问的下一个元素。如果到达集合结尾,则抛出NoSuchElementException异常。
(2)void remove(): 删除上次访问返回的对象。本方法必须紧跟在一个元素的访问后执行。如果上次访问后集合已被修改,方法将抛出IllegalStateException。
注意:代器迭是“故障快速修复(fail-fast)”的。这意味着,当另一个线程修改底层集合的时候如果您正在用 Iterator 遍历集合,那么Iterator就会抛出 ConcurrentModificationException (另一种 RuntimeException异常)异常并立刻失败。
2.3.2、List接口:
特点:List 接口继承了 Collection 接口以定义一个允许重复项的有序集合。该接口不但能够对列表的一部分进行处理,还添加了面向位置的操作。
方法:(1)void add(int index, Object element): 在指定位置index上添加元素element
boolean addAll(int index, Collection c): 将集合c的所有元素添加到指定位置index
Object get(int index): 返回List中指定位置的元素
int indexOf(Object o): 返回第一个出现元素o的位置,否则返回-1
int lastIndexOf(Object o) :返回最后一个出现元素o的位置,否则返回-1
Object remove(int index) :删除指定位置上的元素
Object set(int index, Object element) :用元素element取代位置index上的元素,并且返回旧的元素
注意:面向位置的操作除了包括插入某个元素或 Collection 的功能,还包括获取、除去或更改元素的功能。在 List 中搜索元素可以从列表的头部或尾部 开始,如果找到元素,还将报告元素所在的位置。
(2)List 接口不但以位置序列迭代的遍历整个列表,还能处理集合的子集:
ListIterator listIterator() : 返回一个列表迭代器,用来访问列表中的元素
ListIterator listIterator(int index) : 返回一个列表迭代器,用来从指定位置index开始访问列表中的元素
List subList(int fromIndex, int toIndex) :返回从指定位置fromIndex(包含)到toIndex(不包含)范围中各个元素的列表视图,对子列表的更改(如 add()、remove() 和 set() 调用)对底层 List 也有影响。
注意:ListIterator 接口继承 Iterator 接口以支持添加或更改底层集合中的元素,还支持双向访问。ListIterator没有当前位置,光标位于调用previous和next方法返回的值之间。一个长度为n的列表,有n+1个有效索引值:
2.3.3、Set接口:
特点:接口继承 Collection 接口,而且它不允许集合中存在重复项,每个具体的 Set 实现类依赖添加的对象的 equals()方法来检查独一性。Set接口没有引入新方法,所以Set就是一个Collection,只不过其行为不同。
2.3.4、Map接口:
特点:Map接口不是Collection接口的继承。Map接口用于维护键/值对(key/value pairs)。该接口描述了从不重复的键到值的映射。
方法:(1) 添加、删除操作:
Object remove(Object key): 从映像中删除与key相关的映射
void putAll(Map t): 将来自特定映像的所有元素添加给该映像
void clear(): 从映像中删除所有映射
注意:Object put(Object key, Object value): 将互相关联的一个关键字与一个值放入该映像。如果该关键字已经存在,那么与此关键字相关的新值将取代旧值。方法返回关键字的旧值,如果关键字原先并不存在,则返回null
(2) 查询操作:
boolean containsKey(Object key): 判断映像中是否存在关键字key
boolean containsValue(Object value): 判断映像中是否存在值value
int size(): 返回当前映像中映射的数量
boolean isEmpty() :判断映像中是否有任何映射
2.3.5、LinkedList类和ArrayList类:
(1)LinkedList:
特点 :使用LinkedList 能更好地实现频繁的从列表的中间位置添加和除去元素。
方法:
(1)void addFirst(Object o): 将对象o添加到列表的开头
void addLast(Object o):将对象o添加到列表的结尾
(2) Object getFirst(): 返回列表开头的元素
Object getLast(): 返回列表结尾的元素
(3) Object removeFirst(): 删除并且返回列表开头的元素
Object removeLast():删除并且返回列表结尾的元素
(4) LinkedList(): 构建一个空的链接列表
LinkedList(Collection c): 构建一个链接列表,并且添加集合c的所有元素
(2)ArrayList:
特点:支持随机访问,而不必在除尾部的任何位置插入或除去元素
方法:
(1) void ensureCapacity(int minCapacity): 将ArrayList对象容量增加minCapacity
(2) void trimToSize(): 整理ArrayList对象容量为列表当前大小。程序可使用这个操作减少ArrayList对象存储空间。
第二篇:Java暑假自学总结
Java暑假自学总结
第一节:配置java的环境
1).到官方网站(http://java.sun.com)去下载jdk1.6.0—26;
2).一一般建议大家开始将jdk安装到C盘,因为这便于记忆和查找;
3).配置环境:
第一种方法:打开“C盘program files文件夹”——》找到“java文件夹”——》并点击进入打开jdk中的bin目录,之后复制bin目录。
右击“我的电脑”—》“属性”—》选择“高级”—》“环境变量”——》在“用户变量”里设置三个变量(path,classpath,javahome)。有变量的就可以直接进行“编辑”,如果没有变量就应该“新建”。
设置(或编辑)JAVA_HOME环境变量:C:\Program Files\Java\jdk1.6.0_26;
设置(或编辑)PATh环境变量:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
设置(或编辑)CLASSPATH环境变量:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; 第二种方法:同上,只是设置或编辑变量的位置不同,是在系统变量之中。
4).查看环境变量是否设置成功:
打开“开始”——》“运行”——》输入“cmd”——》点击“enter”;
输入java,出现下图
并且输入“javac”出现下图时:
说明java的环境变量设置成功。
或者输入"java -version"时出现下图时说明环境变量设置成功:
第二节:对象与类