马士兵_J2SE第七章_容器_个人学习笔记.doc

上传人:m**** 文档编号:552277159 上传时间:2024-03-07 格式:DOC 页数:9 大小:1.56MB
返回 下载 相关 举报
马士兵_J2SE第七章_容器_个人学习笔记.doc_第1页
第1页 / 共9页
马士兵_J2SE第七章_容器_个人学习笔记.doc_第2页
第2页 / 共9页
马士兵_J2SE第七章_容器_个人学习笔记.doc_第3页
第3页 / 共9页
马士兵_J2SE第七章_容器_个人学习笔记.doc_第4页
第4页 / 共9页
马士兵_J2SE第七章_容器_个人学习笔记.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《马士兵_J2SE第七章_容器_个人学习笔记.doc》由会员分享,可在线阅读,更多相关《马士兵_J2SE第七章_容器_个人学习笔记.doc(9页珍藏版)》请在金锄头文库上搜索。

1、尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第07章_容器 听课笔记 2009-12-21 20:43 by LoveXForce第七章. 容器11361图API类图结构图1类Collection类3知识点For Generic(泛型) Auto Boxing and Unboxing6接口 Collection Set List Map Iterator Comparable1. 容器java API 所提供的一系列类的实例,用于在程序中存放对象J2SDK所提供的容器API位于util包内容器API的类图结构如图: 容器API1. Collection接口(一个一个的装):定义了

2、存取一组对象的方法,其子接口Set和List分别定义了存储方式Set中的数据对象没有顺序并且不可以重复。(两对象互相equals相等则重复)List中的数据对象有顺序并且可以重复。2. Map接口(一对一对的装):定义了存储“键(key) 值(value)映射对”的方法2. Collection接口Collection接口中所定义的方法:例举1 2009-12-21 20:49:57-2010-3-28 13:10:54例举2 02_Collection_2.avi container BasicContainer.java7import java.util.*;public class Ba

3、sicContainer public static void main(String args) Collection c = new HashSet(); c.add(hello); c.add(new Name(f1,l1); c.add(new Integer(100); c.remove(hello); /如果equals则去除 c.remove(new Integer(100); System.out.println (c.remove(new Name(f1,l1); System.out.println(c); class Name implements Comparable

4、private String firstName,lastName; public Name(String firstName, String lastName) this.firstName = firstName; this.lastName = lastName; public String getFirstName() return firstName; public String getLastName() return lastName; public String toString() return firstName + + lastName; /重写equals方法 publ

5、ic boolean equals(Object obj) if (obj instanceof Name) Name name = (Name) obj; return (firstName.equals(name.firstName) & (lastName.equals(name.lastName); return super.equals(obj);public int hashCode() return firstName.hashCode();public int compareTo(Object o) Name n = (Name)o; int lastCmp = lastNpa

6、reTo(n.lastName); return (lastCmp!=0 ? lastCmp : firstNpareTo(n.firstName); 注意:重写equals方法必须重新hashCode方法 当一个类的某个对象当做索引,会使用hashcode方法 public boolean equals(Object obj) if (obj instanceof Name) Name name = (Name) obj; return (firstName.equals(name.firstName) & (lastName.equals(name.lastName); return su

7、per.equals(obj);public int hashCode() return firstName.hashCode();3. Iterator接口 (方便遍历) 相当于指针、游标,每一种容器有自己的Iterator接口例举注意:Iterator对象的remove方法是在迭代过程中删除元素的唯一安全方法2010-3-28 14:44:34 - 2010-3-28 20:32:23知识点1:JDK1.5增强For循环4. Set接口Set接口是Collection的子接口,Set接口没有提供额外的方法,但实现Set接口的容器类中的元素是没有顺序的,且不可重复。Set容器可以与数学中”集

8、合”的概念想对应。J2SDK API中所提供的Set 容器类有HashSet,TreeSet等。5. List接口 类似数组(大小自动增加)List接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的,而且可以重复。List容器的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器总的元素。J2SDK所提供的List容器类有ArrayList,LinkedList等。例举List常用算法:类Java.util.Collections提供了一些静态方法实现了机遇List容器的一些常用算法。void sort(List) 对List容器内的元素排序void

9、 shuffle(List) 对List容器内的对象进行随机排序void reverse(List) 对List容器内的对象进行逆序排序void fill(List, object) 用一个特定的对象重写整个List容器void copy(List dest , List src)将src List容器内容拷贝到dest List容器int binarySearch(List , Object)对于顺序的List容器,采用二分搜索法查找特定对象例举6. Comparable 接口 2010-3-30 13:29:46实现了这个接口的类,他们之间的对象可以互相比较大小。如何选择数据结构衡量标准:

10、读的效率和改的效率Array读快改慢Linked改快读慢Hash两者之间7. Map接口实现Map接口的类用来存储键-值 对Msp接口的实现类有HashMap和TreeMap等Map类中存储的键-值对通过键来标识,所以键值不能重复Object put (Object key , Object value); /将key的值改为value(如果存在key),并将对象返回Object put (Object key); /通过key 找到value对象Object remove(Object key); /把key对应的value去掉boolean containsKey(Object key);

11、 /是不是包含keyboolean containsValue(Object value); /是不是包含valueint size(); /装了多少对对象boolean isEmpty(); /是不是空的void putAll(Map t); /把另外一个Map里面的东西全部加进来void clear(); /清除知识点2:自动打包解包 (jdk1.5以后) Auto Boxing and Unboxing打包:自动将基础类型转换为对象解包:自动将对象转换为基础类型例如:ContainerTestMap.java import java.util.*;public class TestMap

12、 public static void main(String args) Map m1 = new HashMap(); Map m2 = new TreeMap(); /m1.put(one,new Integer(1); m1.put(one, 1); /m1.put(two,new Integer(2); m1.put(two, 2); /m1.put(three,new Integer(3); m1.put(three, 3); /m2.put(A,new Integer(1); m2.put(A, 1); /m2.put(B,new Integer(2); m2.put(B, 2)

13、; System.out.println(m1.size(); System.out.println(m1.containsKey(one); System.out.println /(m2.containsValue(new Integer(1); (m2.containsValue(1); if(m1.containsKey(two) /int i = (Integer)m1.get(two).intValue(); int i = (Integer)m1.get(two);/系统不知道是否能转换为Integer型,但是手动转换为Integer型后系统自动解包为相对应的值 System.out.println(i); Map m3 = new HashMap(m1); m3.putAll(m2); System.out.println(m3); 练习1 containerTestArgsWords.java 显示

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号