第二周 1. 权限修饰符可用范围 (1) Public:当前类,相同包下不同类,不同包下的 (2) Protected:当前类,相同包下不同类,不同包的子类可用 (3) Default:当前类,相同包下不同类 (4) Private:当前类 2. 包: (1) 特点:不同包可以有同名类,相同包下不能有同名类 3. 内部类 (1) 成员内部类 ① 定义在类的成员位置的类 ② 在内部类中,可以直接访问外部类的成员,包括私有成员 ③ 优点:可以直接访问外部类的成员 ④ 注意:内部类不是静态的时候,内部类的方法不能是静态方法 (2) 局部内部类:用的比较少 ① 在方法内,出了方法之后就无法使用 (3) 匿名内部类:这个需要多理解应用场景 ① 前提:必须有父类或者父接口,创建格式是“new 父类名(){重写父类方法};” ② 匿名内部类里面不能用外部的变量,但可以用常量(因为局部变量一旦方法结束就消失,对象在堆内存则不一定消失,不能在对象中使用一个已经消失的局部变量,解决方法是用final修饰这个变量,使他变成常量) ③ 使用场景:当我们需要调用方法的时候,需要定义子类,创建子类对象,但是仅仅为了调用那个方法,没必要单独定义子类。匿名内部类就可以一次性做到这两件事:定义子类,创建子类对象。 4. String和int互相转换 (1) String转成int:Integer.paseInt(字符串); (2) Int转成String:””+int。 5. Calendar里面的月份要加一,比如要打印3月份,应该设置成4。要打印一月份,应设置成2 Calendar的月份 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11 实际的月份 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11 ,12 (1) 尽量用SimpleDateFormat定义日期格式,再用new simpledateformat(设置格式).parse(设置年月日) 6. 集合:collection就是集合的顶层结构 (1) Collection中的常用功能 ① boolean add(E e);永远可以添加成功,因为ArrayList允许重复 ② Void clear();清空 ③ Boolean contains(Object o);判断集合中是否包含指定元素 ④ Boolean remove(Object o);删除元素 ⑤ Int size();返回集合中的元素个数 ⑥ Object[] toArray()将集合转换成一个object类型的数组 ⑦ Boolean isempty()判断集合是否为空 (2) 迭代器 ① 实质:迭代器(Iterator)是个接口 ② 可以用于遍历集合 ③ 用法:Iterator i=集合.iterator(); While(i.hasNext){ System.out.println(i.next()); } ④ 并发修改异常: 1) 概念:在迭代器遍历的过程中,如果对集合的元素进行添加或者删除的操作,会产生并发修改异常 2) 解决方案: a. 不要用迭代器 b. 让迭代器自己进行增删操作:ListIterator: ListIterator lit=集合.listIterator(); 7. 泛型: (1) 概念:是一种广泛的类型,把明确数据的类型的工作提前到了编译时期,借鉴了数组的特点 (2) 好处:避免了类型转换的问题,可以减少黄色警告线,可以简化我们代码的书写 (3) 什么时候使用:看API ,遇到<E>的时候就可以使用,E代表设置的类型 8. Foreach: (1) 概念:增强for循环,一般用于遍历集合或者数组 (2) 格式for(元素的类型变量:集合或者数组对象){ 可以直接使用变量 } (3) 注意:在增强for循环中不能修改集合,否则会出现并发修改异常,因为底层就是在用迭代器 9. 常见的数据结构: (1) 数组: ① 特点: 1) 数组的长度定义之后就不可改变 2) 数组中的元素都有整数索引 3) 数组只能存储同一类型的元素 4) 数组即可以存储基本数据类型,也可以存储引用数据类型 5) 查找快,增删慢 (2) 链表: ① 概念:由链子连接起来的一对节点 ② 特点 1) 查询慢,增删快 (3) 栈: ① 特点: 1) 先进后出 (4) 队列: ① 特点: 1) 先进先出 10. List子体系 (1) 特点: ① 有序的(存储和读取的顺序是一致的) ② 有整数索引 ③ 允许重复的 (2) ArrayList:底层是数组 (3) Linkedlist:底层是链表 ① 特有功能: 1) Void addFirst(E e):将e添加到开头处 2) Void addLast(E e):将e添加到结尾处 3) E getfirst():获取第一个元素 4) E getlast():获取最后一个元素 5) E removefirst():删除第一个元素 6) E removelast():删除最后一个元素 11. Set (1) 特点: ① 无序(存储和读取顺序有可能不一样) ② 不允许重复(要求元素唯一) ③ 没有索引 (2) HashSet ① 没什么好特别的,参照Set特点 12. HashMap (1) 概念:独立于collection体系的集合 (2) 特点: ① 元素成对存储(一个key对一个value),key不可以重复,value可以重复 ② 拓展:HashMap里的key就相当于一个Set集合(不用管) (3) 常见用法: ① 添加(也可以叫修改) 1) V put(K key,V value)添加key和对应的value,如果key已经存在,那么就覆盖原来value,返回V是以前的value ② 获取 1) Int size()返回对应关系的长度 2) V get(object key)根据指定key返回对应的value ③ 判断 1) Boolean ContainsKey()判断指定key是否存在 2) Boolean containsvalue()判断指定value是否存在 3) Boolean isempty()判断是否有对应关系 ④ 删除 1) V remove(object key)根据指定的key删除对应关系,并返回key所对应的值,如果没有删除成功则返回null ⑤ 遍历 1) Set<K> key =map.keySet()将所有的key存入key集合 2) Collection value =map.value()把所有value存入value集合 3) Set<Map.Entry<K,V>> entrys =map.entrySet(); For(Map.Entry<K,V> entry : entrys){ String key=Entry.getKey(); String value=Entry.getValue(); System.out.println(key+value); } 13. Collections (1) 概念:这是一个工具类 (2) 常见用法: ① static int BinarySearch(List list,Object key)使用二分查找法查找key在指定list中的索引位置,注意:元素得有大小顺序 ② static void copy(List dest,List src)把src中的数据覆盖到dest,注意:目标列表的长度至少需要等于源列表长度 ③ static void fill(List list,Object obj)使用obj填充到list中的所有元素 ④ Static void reverse(List list)反转list中的元素 ⑤ Static void shuffle(List list)随机置换list中的元素 ⑥ Static void sort(List<T> list)按照list中元素的自然顺序排序 ⑦ Static void swap(List list,int i,int j)将list中i索引和j索引的元素互换
|