DAY12第十二天集合&泛型&IO学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAY12第十二天集合&泛型&IO学习笔记相关的知识,希望对你有一定的参考价值。

hash:散列

------------------

Hashset集合内部是通过HashMap进行实现的。使用的是HashMap中key部分。

对象在添加进集合中时,首选会对hashcode进行处理(hashcode右移16位和

自身做异或运算)得到一个经过处理的hash值,然后该值和集合的容量进行

&运算,得到介于0和集合容量值之间一个数字。该数字表示着数组的下标。

也就是该元素应该存放在哪个元素中。


Map与Collection

--------------

        Map与Collection在集合框架中属并列存在

        Map存储的是键值(KV)(Key-Vaule)对

        Map存储元素使用put方法,Collection使用add方法

        Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素

        Map集合中键要保证唯一性

Map集合常用类

---------------

        Hashtable:线程安全,速度慢,不允许存放null键,null值,已被HashMap替代。

        HashMap:线程不安全,速度快,允许存放null键,null值。

        TreeMap:对键进行排序,排序原理与TreeSet相同。

技术分享

增强FOR循环

--------------

        Collection在JDK1.5后出现的父接口Iterable就是提供了这个for语句。

        格式:        

for(数据类型 变量名 : 数组或Collection集合)
        {
        执行语句;
        }

        简化了对数组,集合的遍历。

可变长参数函数(只能有一个变长参数而且必须是最后一个)

返回值类型   函数名(参数类型…   形式参数)
    {
		执行语句;
    }

泛型

---------------

        提高了程序的安全性

        将运行期遇到的问题转移到了编译期

        省去了类型强转的麻烦

        泛型类的出现优化了程序设计        

List<Srting> list1 = new ArrayList<String>();  //<E>

        类型通配符上限通过形如Box<? extends Number>形式定义,相对应的,类型通配符下限为    Box<? super Number>形式,其含义与类型通配符上限正好相反


IO流

----------------------

            java.io.

            IO流用来处理设备之间的数据传输

            Java对数据的操作是通过流的方式

            Java用于操作流的对象都在IO包中

            流按操作数据分为两种:字节流与字符流。  

            流按流向分为:输入流,输出流。

IO流常用基类

-----------------------

        字节流的抽象基类:

            InputStream ,OutputStream。

        字符流的抽象基类:

            Reader , Writer。

        注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。

            如:InputStream的子类FileInputStream。

            如:Reader的子类FileReader。

TIPS2:

        进行IO异常处理

        在finally中对流进行关闭 Close()

    

字符流+字节流

---------------

FilterWriter fw = new FileWriter();

FileReader : 不支持Rest,不支持mark,skip跳过指定字符数,>=0.

-------------------


输入流 + 输出流

------------------


本文出自 “yehomlab” 博客,转载请与作者联系!

以上是关于DAY12第十二天集合&泛型&IO学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

DAY16第十六天Socket套接字学习笔记

DAY15Java第十五天I/O学习笔记

Linux课程第十二天学习笔记

Java学习第十二天

《从零开始学Swift》学习笔记(Day 16)——字典集合

JAVA Web day02--- Android小白的第二天学习笔记