Java中Collection和Map的区别和联系——主要是概念性和理解性的东西

java中的几个集合框架的设计思想和底层逻辑始终容易忘,而且容易分不清楚
这里自己写一下做个整合,主要是概念性的东西,具体代码和各自的方法没有描述。

Collection

首先是Collection接口,Collection接口下有两个子接口,一个是List,一个是Set。Collection接口中有方法iterator,这个就是遍历器,只有collection的实现类才有,包括子接口的实现类。强化后的foreach其实也是基于这个,也就是说强化型for也只能用于Collection的实现类。
而Map明明不是Collection的子接口,为什么其实现类也可以用iterator?这个在下面的Map里细讲。

List

List接口主要是实现有序的,这里何为有序?不是说按照某一个值从小到大排列的有序,而指的是存放地址是有序的,也就是说可以类似于数组一样,根据下标去取值,这样很快,当然取值的代码并不是list[1]这种,而是list.get(1);这种形式,但是并不影响它的取值速度很快。

ArrayList

而List的接口的主要实现类就是我们的ArrayList。顾名思义,ArrayList就和Array有点类似。而Arrays是一个工具类,这个工具类中就包含了将Array转换为List的方法,即Arrays.asList(Object[] obj);

Set

Set和List不太一样,Set不允许有重复的数据!不论是HashSet实现类也好,还是TreeSet实现类也要,具体怎么办到的。可以看下文

HashSet

Set,其主要的实现类就是HashSet。其跟List不一样,不是有序的(注意这里的有序也指的是存放地址的连续性),因此,其一旦要查找集合中的某个值,就要从头到尾遍历然后equals?肯定不行,这样太慢了,那么原理就是Hash,所以才取名叫HashSet,存放的具体形式呢就是先根据要查找的值计算Hash值,定位在数组中的位置,然后根据数组中存放的地址去查找一个链表,而这个链表就是每一个Hash值都相同的才放在这个链表中的。那么如何做到Set中不允许有相同的数据呢?和查找原理类似,先比较HashCode,一样之后再比较equals方法,还是一样,那不就是一样了吗?所以不让放进去,或者说放进去了也是覆盖!!所以Set的主要实现类也叫HashSet。这是关于HashSet比较有意思的题

@Test
    public void test(){
        HashSet hashSet = new HashSet();
        Person p1 = new Person("AA", 13);
        Person p2 = new Person("BB", 12);

        hashSet.add(p1);
        hashSet.add(p2);
        System.out.println(hashSet);

        p1.setName("CC");
        hashSet.remove(p1);
        System.out.println(hashSet);
        /**
         *
         * 这个很有意思,就是要深入理解hashset的原理,因为hashset在add p1的时候
         * 通过hashcode放的位置加入是3位置,但是当怕p1更改了他的name值之后
         * 再想移除掉p1的时候,会用hashcode去计算新的p1对应的哈希值,最后找到的位置比如说是4
         * 那么就自然而然,会产生4没有数据的问题,那就不会删除。
         */

        hashSet.add(new Person("CC", 13));
        System.out.println(hashSet);
        /**
         * 这里还是放进去了,原理与上面一样,p1 放的哈希值是name为AA的时候放的,而这里计算的哈希值
         * 是以name为CC算的,所以两个放的位置不一样,自然就不会用equals去对比
         */

        hashSet.add(new Person("AA", 13));
        System.out.println(hashSet);

        /**
         * 这里还是进去了,很有意思,原理吗,其实也差不多,因为这里计算的哈希值其实是和p1一样的
         * 但是通过equals对比的时候,发现name不一样,因为p1放进去后改了name,所以不一样,就还是可以放进去
         */
    }

TreeSet

这里本质上就是排序二叉树,那么既然是排序二叉树,自然要排序的,这个跟上面的有序就不一样,这里是根据每个元素的某一特定值去判断值的大小,然后从小到大,或者从大到小排序,所以这里的有序和List的有序完全不是一个概念。这里的有序是指值有序,而List的有序是指连续存取地址有序。
那么这里又涉及到一点小疑惑,比如当我一直放的都是对象的时候,那么根据对象的内的某一个值进行对比,当然是可以的。但我之所以要用集合框架而不是数组,不就是因为我存放的数据类型都不尽相同吗

@Test
    public void test3(){
        Comparator comparator = new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                if (o1 instanceof User && o2 instanceof User) {
                    User u1 = (User) o1;
                    User u2 = (User) o2;
                    int value = u1.getName().compareTo(u2.getName());
                    if (value != 0) {
                        return value;
                    }
                    return -(u1.getAge() - u2.getAge());
                }
                throw new RuntimeException("类型不匹配");
            }
        };

        TreeSet set = new TreeSet(comparator);
        User u1 = new User("Tom",11 );
        User u2 = new User("Jerry",21 );
        User u3 = new User("Rose", 31);
        User u4 = new User("Jack", 41);
        User u5 = new User("Tony", 31);

        set.add(u1);
        set.add(u2);
        set.add(u3);
        set.add(u4);
        set.add(u5);
        set.add(1);

        System.out.println(set);
    }

这里最后插入了一个Integer类,而不是User类,自然就没有name属性和age属性,所以会报错!!因为这样就比较不了!除非进一步更改比较器内的代码内容,让之也可以对比!

Map

Map和Collection其实是并列的,但是也有类似的地方,比如Map和Collection的子接口Set类似,不允许有重复的,而这里的重复当然指的是Map每一个单元的key不能重复。value是可以重复的。那么当我们想要操作Map中的数据的时候,会分很多种情况,比如要遍历每一个key,要遍历每一个value,或者要遍历每一个key-value。那么Map就提供了类似的方法去返回你想要的这些数据,根据其特性每个key都不能相同,所以返回的是keySet,value可以相同,所以返回的是List?,不,并不是,这里比较特殊,返回的不是List接口的实现类,而是Collection接口的对象,准确的说是Collection的抽象实现类的匿名子类的匿名对象!总而言之可以理解成就是Collection,不是List。那么既然是Collection,那么自然也是可以遍历的。而每一个key-value自然也不能相同,所以返回的是entrySet,这里的entry就可以理解成Map中的每一个对象。因此!!!我们可以看出!

  • keySet
  • valueList
  • entrySet
    返回的都是Collection!所以他们自然而然都可以调用!iterator遍历器!不要问为什么返回的刚好是这个…源码设计的就是这些方法返回collection,所以map间接也可以用iterator

HashMap

HashMap吗,跟HashSet类似,总之是根据key去判断的。当然如果key相同的话,会覆盖掉value,因此不管是修改数据,还是添加数据,都是put()方法。

TreeMap

和TreeSet也类似,也有自然排序和比较器排序,下面是有需要注意的地方的代码,同理,key的类型不同的时候会无法比较,需要修改比较器的代码,这里因为是对象中重写了compareTo方法,所以选择的是自然排序,除非去修改User类中的方法,否则会报错。或者自己写一个比较器,去重新比较。当你没有给比较器的时候,Tree就会默认调用key的自然排序方法。

@Test
    public void test2(){
        TreeMap treeMap = new TreeMap();
        set.User u1 = new set.User("Tom",11 );
        set.User u2 = new set.User("Jerry",21 );
        set.User u3 = new set.User("Rose", 31);
        set.User u4 = new set.User("Jack", 41);
        set.User u5 = new User("Tony", 31);

        treeMap.put(u1, 78);
        treeMap.put(u2, 88);
        treeMap.put(u3, 99);
        treeMap.put(u4, 76);
        treeMap.put(u5, 55);


        Set entrySet = treeMap.entrySet();
        /**
         *
         * 这里一定要注意因为Tree是根据某一值进行排序的,也就是说,如果key是个对象,而对象定义了compareTo方法,那么就会根据compareTo方法进行对比
         * 进而得出排序,和List的不一样,List是有序的插入,有序的遍历,类似于数组。而这个Tree是根据你插入的key的值进行判定的!
         * 而这里的key都是User对象,而User是是实现了Comparable接口,重写了compareTo方法,那么这里的Tree自然以commpareTo为基准进行排序
         * 而compareTo中又是以User对象的age为基准比大小的,所以当你先插入u3,再插入u5的时候,检测到这两个对象的key大小是一样的,那么就会覆盖
         * 但是!!!!只会覆盖value值,所以打印出来后,对象是u3,但是value却换成了55!!!
         */
        for (Object entry : entrySet) {
            System.out.println(entry);
        }


        /**
         * 同样,这里因为age是一样的,所以会显示true,所以懂了吗?我们在写compareTo的时候一定要注意,到底应该只针对一个属性,还是多个属性!
         */
        System.out.println(treeMap.containsKey(new map.User("Maria", 33)));
    }

Collections工具类

这个工具类是服务于Collection和Map的
这个是个工具类,Arrays也是工具类
Collections中有个sort方法,可以服务于List,sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序,这里的排序就是根据某一值取排序,所以排序完后的List,就不仅地址有序,而且值有序,不仅可以根据下标取值,而且有序的地址的值的大小是有序的!
目前就想到这么多要关注的点,其他的想到了以后再补充

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 一、 HTML&CSS部分 11 1、HTML定义表格的宽度用80px和80%的区别是什么? 11 2、CSS样式定义优先级顺序是? 12 3、div和span的区别? 12 4、CSS选择器包括? 12 5、用css3语法,如何实现一个矩形框的圆角效果和50%红色透明效果?,请写出关键脚本 12 6、Div与Table的区别 13 7、行级标签转块级标签,块级标签转行级标签 13 二、Java基础部分 13 1、java有哪些基本类型? 13 2、java为什么能够跨平台运行? 13 3、String是基本数据类型吗?我可不可以写个类继承于String? 14 4、谈谈&和&&的区别? 14 5、Switch语句里面的条件可不可以是byte、long、String?使用时候还应注意什么? 14 6、short s1=1;s1=s1+1;有什么错?short s1 = 1;s1+=1 有什么错? 14 7、char为什么能存贮一个汉字? 15 9、final关键字的用法? 15 10、静态变量和实例变量的区别? 15 11、面向对象的基本特征是什么? 15 12、作用域public,private,protected,以及不写时的区别? 16 13、Overload和Override的区别。 16 14、构造器可不可以被重载或重写? 16 15、Java有没有多继承? 16 16、抽象类和接口的区别? 17 17、java实现多态的机制是什么? 17 19、String和StringBuffer的区别?StringBuffer和StringBuilder区别? 17 21、数组有没有length()方法,String有没有length()方法? 18 23、final, finally, finalize的区别。 18 24、‘==’和equals的区别? 18 25、JAVAObject类有哪些常用方法? 19 26、heap和stack有什么区别。 19 27、GC是什么? 为什么要有GC? 20 28、什么是内部类?分为哪几种? 20 29、为什么需要内部类? 20 30、内部类可以引用它的包含类的成员吗?有没有什么限制? 21 31、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 33、数字转字符有多少种方式,分别是什么 22 34、Java创建对象有几种方式 22 35、写出验证Email的正则表达式 22 39、说出十种常见的异常 22 40什么是检查异常和非检查异常? 23 41、Java的异常处理机制是什么? 23 42、一个静态方法,里面可不可以用this和super关键字 24 三、JavaScript/JQuery/Ajax部分 24 1、用js和jQuery怎么进行表单验证 24 3、列举javaScript的3种主要数据类型,2种复合数据类型和2种特殊数据类型。 24 4、谈谈你的JS的理解? 24 5、ajax的优点? 25 6、简述一下ajax调试代码查找错误的方法? 26 7、简述ajaxJs脚本缓存问题该如何解决? 26 8、同步和异步怎么理解?分别在什么情况下使用。 26 9、java后台如何接收ajax数据? 26 10、为什么要有jquery? 26 11、jQuery选择器有多少种? 27 13、你是如何使用jquery的ajax的? 27 14、jquery的$.get和$.post请求区别? 27 15、jquery如何操作样式的? 28 16、如何设置和获取HTML和文本的值? 28 17、Jquery能做些什么? 28 18、在ajaxdata主要有哪几种? 28 19、jQueryajax由几部分组成? 28 20、js和jQuery获取value值得区别 29 四、jsp/servlet部分 29 1、Tomcat的优化经验 29 2、Tomcat根目录下有哪些文件 31 3、什么是TOMCAT,怎样启动停止,配置文件,日志文件的存储。 31 4、解释一下什么是servlet;什么是servlet容器; 32 5、说一说Servlet的生命周期,执行过程? 32 6、实例化servlet有几种方式 32 7、谈谈你对http协议的理解 33 8、HTTP请求的GET与POST方式的区别 34 9、forward 和redirect的区别? 34 10、servlet怎么定义forward 和redirect 35 11、过滤器有哪些作用? 35 12、JSP的常用指令? 35 13、JSP和Servlet的请求转发分别如何实现? 35 14、JSP乱码如何解决? 36 15、session 和 application的区别? 36 16、jsp有哪些内置对象?作用分别是什么? 36 17、Jsp有哪些动作?作用分别是什么? 37 18、JSP动态INCLUDE与静态INCLUDE的区别? 37 19、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 38 20、页面传递对象的方法? 38 21、Cookied和session区别? 38 22、Filter的生命周期与执行过程 38 23、Tomcat系统内存怎么配置 39 24、JSTL标签库包含哪些? 39 五、数据库部分 40 1、触发器的作用? 40 2、什么是存储过程?用什么来调用? 40 3、存储过程的优缺点? 40 4、存储过程与函数的区别 41 5、索引的作用?和它的优点缺点是什么? 41 6、什么样的字段适合建索引 41 7、索引类型有哪些? 42 8、什么是事务?什么是锁? 42 9、什么叫视图?游标是什么? 43 10、视图的优缺点 43 11、列举几种表连接方式,有什么区别? 43 12、主键和外键的区别? 44 13、在数据库查询语句速度很慢,如何优化? 44 14、数据库三范式是什么? 44 15、union和union all有什么不同? 45 16、char、varchar2、varchar有什么区别? 45 17、Oracle和Mysql的区别? 46 18、Oracle语句有多少类型 46 19、oracle分页语句 47 20、从数据库随机取50条 47 21、order by与group by的区别 47 22、commit在哪里会运用 47 23、行转列、列换行怎么转 48 24、什么是PL/SQL? 49 25、序列的作用 50 26、表和视图的关系 50 27、oracle基本数据类型 50 28、drop、truncate、 delete区别 50 29、如何优化大数据量的访问? 51 30、oracle怎么去除去重 51 31、合并查询有哪些? 51 32、SQL语句执行顺序 51 33、null的含义 52 34、mysql分页 52 35、MySQL、SqlServer、oracle写出字符存储、字符串转时间 52 36、update语句可以修改结果集的数据吗? 53 37、oracle如何设置主键自动增长? 53 38、表连接、子查询的区别是什么?它们可以相互转化吗?你倾向于用哪种,为什么? 54 39、oracle数据库表的备份及还原 54 40、谈谈你知道的数据库和间件 54 41、oracle和MySQL的区别 54 42、简述Mysql的InnoDb 55 43、删除重复数据只保留一条。 55 44、一个几千万数据,发现数据查询很慢,怎么办? 55 六、Java高级部分 56 1、java有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 56 2、sleep() 和 wait() 有什么区别? 56 3、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 56 4、线程的基本概念 57 5、什么是多线程 57 6、程序、进程、线程之间的关系 57 7、创建线程有几种方式,分别是什么? 58 8、线程的生命周期 59 9、线程currentThread()与interrupt()方法的使用 59 10、线程状态 59 启动线程的方式?start or run? 59 11、什么是java序列化,如何实现java序列化? 59 12、编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad。 60 13、java有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 63 14、字节流与字符流的区别 63 15、怎么判断指定路径是否为目录 65 16、怎么获取指定路径下的全部文件 65 17、Java怎么读取文件和写入文件 65 18、java怎么复制文件 68 19、用JDBC如何调用存储过程 69 20、JDBC的PreparedStatement相比Statement的好处 71 21、写一个用jdbc连接实例。 71 22、ArrayList和Vector的区别? 73 23、List、Set和Map区别? 74 24、CollectionCollections的区别。 74 25、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 75 26、HashMap与HashTable的区别 75 27、Java有多少种数据结构,分别是什么? 76 28、Arraylist 和Linkedlist 的区别 76 29、List遍历方式有多少种 76 30、Map怎么遍历 76 31、怎么获取Map所有的key,所有的value 77 32、获取Class的实例有几种方式 77 33、怎么获取类所有的方法,所有属 77 34、JDBC常用接口有哪些? 77 35、Statement execute、executeUpdate、executeQuery这三者的区别 78 36、jdbc怎么做批量处理的? 80 37、什么是json 83 38、json与xml的区别 83 39、XML和HTML的区别? 84 40、XML文档定义有几种形式?它们之间有何本质区别? 84 41、什么是java反射机制? 84 42、hashmap的底层实现 85 43、什么是java内存泄漏,怎么预防? 85 七、框架部分 85 1、谈谈你对Struts2的理解。 85 2、谈谈你对Hibernate的理解。 86 3、你对Spring的理解。 87 4、Struts2优缺点 87 5、ORM工作原理? 89 6、struts2的核心组件有哪些? 89 7、Strus2的执行过程 89 8、为什么要使用struts2? 90 9、openSession和getCurrentSession 90 10、拦截器的作用?拦截器和过滤器的区别? 91 11、struts.xmlresult的type有哪些类型? 91 12、什么时候用JDBC什么时候用Hibernete; 91 13、hibernate 数据的三个状态 91 14、Hibernateload和get的区别? 92 15、Hibernate的工作原理? 92 16、hibernate优缺点? 92 17、Hibernate是如何延迟加载的? 93 18、如果优化Hibernate? 93 19、什么是ORM? 94 20、Hibernate的主键生成策略? 94 21、Hibernate的级联操作 94 22、Hibernate有哪5个核心接口? 95 23、什么是重量级?什么是轻量级? 95 24、谈谈Spring的IOC和DI
000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2章:简单Java程序】_简单Java程序笔记.pdf 010301_【第3章:Java基础程序设计】_Java数据类型笔记.pdf 010302_【第3章:Java基础程序设计】_运算符、表达式与语句笔记.pdf 010303_【第3章:Java基础程序设计】_判断与循环语句笔记.pdf 010401_【第4章:数组与方法】_数组的定义及使用笔记.pdf 010402_【第4章:数组与方法】_方法的声明及使用笔记.pdf 010403_【第4章:数组与方法】_数组的引用传递笔记.pdf 010404_【第4章:数组与方法】_Java新特对数组的支持笔记.pdf 020501_【第5章:面向对象基础】_面向对象、类与对象的定义笔记.pdf 020502_【第5章:面向对象基础】_类与对象的进一步研究笔记.pdf 020503_【第5章:面向对象基础】_封装笔记.pdf 020504_【第5章:面向对象基础】_构造方法与匿名对象笔记.pdf 020505_〖第5章:面向对象基础〗_实例讲解—类设计分析(学生类)笔记.pdf 020506_【第5章:面向对象基础】_String类笔记.pdf 020507_【第5章:面向对象基础】_String类的常用方法.pdf 020508_【第5章:面向对象基础】_引用传递及其应用笔记.pdf 020509_【第5章:面向对象基础】_this关键字笔记.pdf 020510_【第5章:面向对象基础】_static关键字笔记.pdf 020511_【第5章:面向对象基础】_理解main方法笔记.pdf 020512_【第5章:面向对象基础】_代码块笔记.pdf 020513_【第5章:面向对象基础】_构造方法私有化笔记.pdf 020514_【第5章:面向对象基础】_对象数组笔记.pdf 020515_【第5章:面向对象基础】_内部类笔记.pdf 020516_〖第5章:面向对象基础〗_实例讲解—系统登陆笔记.pdf 020517_〖第5章:面向对象基础〗_实例讲解—单向链表(1)笔记.pdf 020518_〖第5章:面向对象基础〗_实例讲解—单向链表(2)笔记.pdf 020601_【第6章:面向对象(高级)】_继承的基本实现笔记.pdf 020602_【第6章:面向对象(高级)】_继承的进一步研究笔记.pdf 020603_〖第6章:面向对象(高级)〗_范例:继承的应用笔记.pdf 020604_【第6章:面向对象(高级)】_final关键字笔记.pdf 020605_【第6章:面向对象(高级)】_抽象类的基本概念笔记.pdf 020606_【第6章:面向对象(高级)】_接口的基本概念笔记.pdf 020607_【第6章:面向对象(高级)】_对象的多态笔记.pdf 020608_【第6章:面向对象(高级)】_instanceof关键字笔记.pdf 020609_【第6章:面向对象(高级)】_抽象类与接口的应用笔记.pdf 020610_〖第6章:面向对象(高级)〗_实例分析:宠物商店笔记.pdf 020611_【第6章:面向对象(高级)】_Object类笔记.pdf 020612_【第6章:面向对象(高级)】_包装类笔记.pdf 020613_【第6章:面向对象(高级)】_匿名内部类笔记.pdf 020701_【第7章:异常的基本概念】_异常的基本概念笔记.pdf 020702_【第7章:异常的基本概念】_异常的其他概念笔记.pdf 020801_【第8章:包及访问控制权限】_包的定义及导入笔记.pdf 020802_【第8章:包及访问控制权限】_访问控制权限及命名规范笔记.pdf 030901_【第9章:多线程】_认识多线程笔记.pdf 030902_【第9章:多线程】_线程常用操作方法笔记.pdf 030903_〖第9章:多线程〗_线程操作范例笔记.pdf 030904_【第9章:多线程】_同步与死锁笔记.pdf 030905_【第9章:多线程】_线程操作案例——生产者和消费者笔记.pdf 030906_【第9章:多线程】_线程生命周期笔记.pdf 031001_【第10章:泛型】_泛型入门笔记.pdf 031002_【第10章:泛型】_通配符笔记.pdf 031003_【第10章:泛型】_泛型的其他应用笔记.pdf 031004_〖第10章:泛型〗_实例讲解—泛型操作范例笔记.pdf 031101_【第11章:Java常用类库】_StringBuffer笔记.pdf 031102_【第11章:Java常用类库】_Runtime类笔记.pdf 031103_【第11章:Java常用类库】_国际化程序笔记.pdf 031104_【第11章:Java常用类库】_System类笔记.pdf 031105_【第11章:Java常用类库】_日期操作类(Date、Calendar)笔记.pdf 031106_【第11章:Java常用类库】_日期操作类(DateFormat、SimpleDateFormat)笔记.pdf 031107_〖第11章:Java常用类库〗_实例操作:取得当前日期笔记.pdf 031108_【第11章:Java常用类库】_Math与Random类笔记.pdf 031109_【第11章:Java常用类库】_NumberFormat笔记.pdf 031110_【第11章:Java常用类库】_大数操作(BigIntger、BigDecimal)笔记.pdf 031111_【第11章:Java常用类库】_对象克隆技术笔记.pdf 031112_【第11章:Java常用类库】_Arrays笔记.pdf 031113_【第11章:Java常用类库】_比较器(Comparable、Comparator)笔记.pdf 031114_【第11章:Java常用类库】_观察者设计模式笔记.pdf 031115_【第11章:Java常用类库】_正则表达式笔记.pdf 031116_【第11章:Java常用类库】_定时调度笔记.pdf 031201_【第12章:JAVA IO】_File类笔记.pdf 031202_【第12章:JAVA IO】_RandomAccessFile笔记.pdf 031203_【第12章:JAVA IO】_字节流与字符流笔记.pdf 031204_【第12章:JAVA IO】_字节-字符转换流笔记.pdf 031205_【第12章:JAVA IO】_内存操作流笔记.pdf 031206_【第12章:JAVA IO】_管道流笔记.pdf 031207_【第12章:JAVA IO】_打印流笔记.pdf 031208_【第12章:JAVA IO】_System类对IO的支持笔记.pdf 031209_【第12章:JAVA IO】_BufferedReader笔记.pdf 031210_〖第12章:JAVA IO〗_IO操作实例笔记.pdf 031211_【第12章:JAVA IO】_Scanner笔记.pdf 031212_【第12章:JAVA IO】_数据操作流笔记.pdf 031213_【第12章:JAVA IO】_合并流笔记.pdf 031214_【第12章:JAVA IO】_压缩流笔记.pdf 031215_【第12章:JAVA IO】_回退流笔记.pdf 031216_【第12章:JAVA IO】_字符编码笔记.pdf 031217_【第12章:JAVA IO】_对象序列化笔记.pdf 031218_〖第12章:JAVA IO〗_实例操作—单人信息管理程序笔记.pdf 031219_〖第12章:JAVA IO〗_实例操作:投票程序笔记.pdf 031301_【第13章:Java类集】_认识类集、Collection接口笔记.pdf 031302_【第13章:Java类集】_List接口笔记.pdf 031303_【第13章:Java类集】_LinkedList类笔记.pdf 031304_【第13章:Java类集】_Set接口笔记.pdf 031305_【第13章:Java类集】_排序及重复元素说明笔记.pdf 031306_【第13章:Java类集】_SortedSet接口笔记.pdf 031307_【第13章:Java类集】_Iterator接口笔记.pdf 031308_【第13章:Java类集】_ListIterator接口笔记.pdf 031309_【第13章:Java类集】_foreach及Enumeration接口笔记.pdf 031310_【第13章:Java类集】_Map接口笔记.pdf 031311_【第13章:Java类集】_Map接口使用的注意事项笔记.pdf 031312_【第13章:Java类集】_IdentityHashMap类笔记.pdf 031313_【第13章:Java类集】_SortedMap类笔记.pdf 031314_【第13章:Java类集】_集合工具类:Collections笔记.pdf 031315_【第13章:Java类集】_Stack类笔记.pdf 031316_【第13章:Java类集】_属类:Properties笔记.pdf 031317_〖第13章:Java类集〗_范例讲解:一对多关系笔记.pdf 031318_〖第13章:Java类集〗_范例讲解:多对多关系笔记.pdf 031401_【第14章:枚举】_枚举的作用笔记.pdf 031402_【第14章:枚举】_Enum笔记.pdf 031403_【第14章:枚举】_类集对Enum的支持笔记.pdf 031404_【第14章:枚举】_枚举的其他应用笔记.pdf 031501_【第15章:Java反射机制】_认识Class类笔记.pdf 031502_【第15章:Java反射机制】_Class类的使用笔记.pdf 031503_【第15章:Java反射机制】_反射应用——取得类的结构笔记.pdf 031504_【第15章:Java反射机制】_Java反射机制的深入研究笔记.pdf 031505_【第15章:Java反射机制】_动态代理笔记.pdf 031506_【第15章:Java反射机制】_工厂设计模式笔记.pdf 031601_【第16章:Annotation】_系统内建Annotation笔记.pdf 031602_【第16章:Annotation】_自定义Annotation笔记.pdf 031603_【第16章:Annotation】_反射与Annotation笔记.pdf 031604_【第16章:Annotation】_深入Annotation笔记.pdf 031701_【第17章:Java数据库编程】_JDBC概述笔记.pdf 031702_【第17章:Java数据库编程】_MySQL数据库笔记.pdf 031703_【第17章:Java数据库编程】_SQL语法基础笔记.pdf 031704_【第17章:Java数据库编程】_JDBC操作步骤及数据库连接操作笔记.pdf 031705_【第17章:Java数据库编程】_执行数据库更新操作笔记.pdf 031706_【第17章:Java数据库编程】_ResultSet接口笔记.pdf 031707_【第17章:Java数据库编程】_PreparedStatement接口笔记.pdf 031708_【第17章:Java数据库编程】_处理大数据对象(1)—处理CLOB数据笔记.pdf 031709_【第17章:Java数据库编程】_处理大数据对象(2)—处理BLOB数据笔记.pdf 031710_【第17章:Java数据库编程】_CallableStatement接口笔记.pdf 031711_【第17章:Java数据库编程】_JDBC 2.0操作笔记.pdf 031712_【第17章:Java数据库编程】_事务处理笔记.pdf 031713_【第17章:Java数据库编程】_使用元数据分析数据库笔记.pdf 031714_【第17章:Java数据库编程】_使用JDBC连接Oracle笔记.pdf 031801_【第18章:图形界面】_AWT、Swing简介笔记.pdf 031802_【第18章:图形界面】_基本容器:JFrame笔记.pdf 031803_【第18章:图形界面】_标签组件:JLabel笔记.pdf 031804_【第18章:图形界面】_按钮组件:JButton笔记.pdf 031805_【第18章:图形界面】_布局管理器笔记.pdf 031806_【第18章:图形界面】_其他容器笔记.pdf 031807_【第18章:图形界面】_不弹起的按钮组件:JToggleButton笔记.pdf 031808_【第18章:图形界面】_文本组件:JTextComponent笔记.pdf 031809_【第18章:图形界面】_事件处理笔记.pdf 031810_【第18章:图形界面】_单选钮:JRadioButton笔记.pdf 031811_【第18章:图形界面】_复选框:JCheckBox笔记.pdf 031812_【第18章:图形界面】_列表框:JList笔记.pdf 031812_【第18章:图形界面】_下拉列表框:JComboBox笔记.pdf 031813_【第18章:图形界面】_菜单组件笔记.pdf 031814_【第18章:图形界面】_文件选择框笔记.pdf 031815_【第18章:图形界面】_表格笔记.pdf 031901_【第19章:Java网络编程】_IP(Internet Protocol)与InetAddress笔记.pdf 031902_【第19章:Java网络编程】_URL与URLConnection笔记.pdf 031903_【第19章:Java网络编程】_URLEncoder与URLDecoder笔记.pdf 031904_【第19章:Java网络编程】_TCP程序设计笔记.pdf 031905_【第19章:Java网络编程】_UDP程序设计笔记.pdf 032001_【第20章:Java新IO】_缓冲区与Buffer笔记.pdf 032002_【第20章:Java新IO】_通道(Channel)笔记.pdf 032003_【第20章:Java新IO】_文件锁笔记.pdf 032004_【第20章:Java新IO】_字符集笔记.pdf 032005_【第20章:Java新IO】_Selector笔记.pdf 042101_【课程讲解】_附录:Eclipse开发工具笔记.pdf 050101_〖开发实例〗_Java开发实例讲解(人员管理)笔记.pdf

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值