网站大量收购独家精品文档,联系QQ:2885784924

01java基础 - 01.docx

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
01java基础 - 01

Java基础01方法增强:继承的方法子类继承父类,将父类的某个方法进行复写,从而进行增强。使用前提:必须有父类,且存在继承关系。装饰者模式包装对象和被包装对象要实现相同的接口,包装的对象需要获得被包装对象的引用(私有接口属性,添加有参构造,不需要重写的,用属性调用原方法。测试时,创建包装对象时,参数传被包装对象就可以了。根据多态普通方法编译看左,运行看右,普通方法就是被包装对象的方法)此设计模式专门用于增强方法前提:必须有接口缺点:如果接口的方法很多而我们只需要增强其中的某个方法,其他的方法都需要原有调用。动态代理常用数据结构*-*在Java中提供了Collection和Map接口。其中List和Set继承了Collection接口,是单列集合;同时vector、ArrayList、LinkedList三个类实现List接口;HashSet、TreeSet、LinkedHashSet(有序的)实现Set接口。HashMap、HashTable、LinkedHashMap、TreeMap实现Map接口,是双列集合。容器中的七大接口Iterator接口、Map接口、Collection接口Set接口、List接口、Queue接口、Comparable接口对象容器接口:list,set,map区别list:存储:有序有索引可重复;访问:可以for循环,foreach循环,iterator迭代器迭代。set:存储:无索引,不重复的;访问:可以foreach循环,iterator迭代器迭代,没有for遍历map:存储:存储的是一对一对的映射“key=value”。访问:可以map中的keyset()把key值转为set存储,然后迭代这个set,用map.get(key)获取value,也可以用EntrySet()转换为entry对象用迭代器迭代,Entry中存放的是key和value。import java.util.HashMap;import java.util.Iterator;import java.util.Map.Entry;//是接口import java.util.Set;publicclass Map1 {/* * 创建一个Map集合,添加数据进行测试,使用Map集合的两种遍历方式进行遍历 */publicstaticvoid main(String[] args) {HashMapInteger, Integer hm = new HashMap();hm.put(1, 10);hm.put(2, 20);hm.put(3, 30);hm.put(1, 40);SetInteger keySet = hm.keySet();IteratorInteger iterator = keySet.iterator();System.out.println(keySet+Iterator遍历:);while (iterator.hasNext()) {Integer key = iterator.next();System.out.print(key + : + hm.get(key) + );}System.out.println(\n----------------------);SetEntryInteger, Integer entrySet = hm.entrySet();System.out.println(entrySet+增强for遍历:);for (EntryInteger, Integer entry : entrySet) {System.out.print(entry.getKey() + : + entry.getValue() + );}}}并发修改异常*-*迭代的常规用法中我们要尽量避免在迭代过程中为集合添加/删除数据。否则会报错,原因是Java抛出了并发修改异常。迭代过程中并发修改异常的原因为迭代器中”记忆”的集合长度与集合中实际长度不同,而导致出现索引与实际元素不符甚至无限循环的情况发生。所以在使用Iterator时,避免类似操作,for循环底层为迭代器实现,所以也需要避免类似操作。有些迭代器避免了这样的问题,如ListIterator,可以添加。迭代器是依赖于集合而存在的,在判断成功后,集合的中新添加了元素,而迭代器却不知道,所以就报并发修改异常。简单描述就是:迭代器遍历元素的时候,通过集合是不能修改元素的。迭代器迭代元素,迭代器修改元素;集合遍历元素,集合修改元素(普通for,因增强for底层使用的是迭代器)。Iterator和 ListIterator的不同使用方法1.ListIterator可以再迭代时对集合进行add、remove、set操作,而Iterator 迭代器只能在迭

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档