Map

  • 是一个键值对的集合

    花和尚

    豹子头

    鲁智深

    林冲

  • 如果想要从map中获得值,可以根据键

  • Map<Key,velue>

  • Map虽然是集合,但是和collection的接口无关

  • 我们可以通过key来获得相应的值,每个键只能
    映射一个值,一个映射不能包含重复的键。

  • Map<K,Y>表示泛型Map的key和value可以是任何类型(不能是基本数据类型)实际项目中K一般都是字符串类型。

  • HashMap:

    • map键是唯一的,collection子接口list集合中的与元素是可以重复的

    • 数据成对出现

    • 一个映射不能包括重复的键

    • 其实键就是Set,Set元素唯一,只能有一个null,元素是无序的。Map键完全遵照Set的这几个特点

    • 如果存在重复的Key
      就会把之前的覆盖掉

    • 值是可以重复的。

      import
      java.util.Map;

      import
      java.util.HashMap;

      publicclass
      MapTest {

      publicstaticvoid
      main(String[]args)
      {

      Map<String,String>
      map
      = new
      HashMap<>();

      map.put("豹子头",
      "林冲");

      map.put("及时雨",
      "松江");

      map.put("白日鼠",
      "白胜");

      map.put("瞎蒙子",
      "白胜");

      System.out.println(map);

      }

      }

    • 值也是可以多个为空的!

HashMap的子类

  • HashMap的特点

  • 主要特点和map相同,map和set特点相同,并且Hashmap不是线程安全的

  • 两个线程同时修改HashMap中的数据的时候,就会出错。

  • 可以将其变成线程安全,通过collections.`synchrolizedMap(map);可以通过这个方法将其变为线程安全的。

  • TreeMap
    和TreeSet相同,他是有序的,根据Key来排序,

  • 自己定义的类对象,如果想要进行排序需要在类中实现Comparable<Person>泛型对象

  • HashTable
    与HashMap的区别在于他是线程安全的,不允许任何的null键和值,其余的都一样、

  • linkedHashMap是有顺序的,根据其添加顺序排序,而HashMap是没有顺序排序的。HashMap用的是最多的,其根据键的大小排序

文件

  • File类属于IO下的类

  • 文件的构造器

    文件对象的创建:

    publicclass
    FileTest {

    publicstaticvoid
    main(String[] args)
    {

    //文件的构造器是用来创建文件对象的

    //创建文件的时候要保证文件路径正确。以下是创建了个对象

    File
    file
    = new
    File("E:\\FileTest.txt");//文件的绝对路径

    //直接输出则会打出文件的路径

    System.out.println(file);

    //第二种创建方式

    File
    file1
    = new
    File("D:\\aaa","tx.txt");

    System.out.println(file1.getName());

    //java中的file类的对象可以代表目录,也可以代表文件

    File
    file2
    = new
    File("F:\\aaa");

    System.out.println(file2.getName());

    //3
    根据目录文件创建一个文件

    File
    file3
    = new
    File(file2,"file3.txt");

    System.out.println(file3.getName());

    //文件构造器的三种方法掌握即可

    }

    }

  • 文件的删除和创建

  • 查看文件是否存在
    exists()方法用来查看文件是否存在,存在则返回true否则返回false

//创建目录

//创建的时候上一层的路径必须正确

booleannewMkdir
= file2.mkdir();

System.out.println(newMkdir);

  • 如果要同时创建多级目录则使用mkdirs方法

  • 删除文件方法

  • file.delete();删除方法,删除后不在回收站,只删除一个文件。删除路径的最后一层,返回值为布尔型,如果文件夹中有文件的花不可删除,只有空目录才能删除。

  • 文件的获取功能:

    //文件的构造器是用来创建文件对象的

    //创建文件的时候要保证文件路径正确。以下是创建了个对象

    File
    file
    = new
    File("E:\\FileTest.txt");//文件的绝对路径

    String
    absPath
    = file.getAbsolutePath();

    System.out.println(absPath);

    //相对路径就是当前项目的根:相对路径创建方法

    //下面这种不指定路径直接创建文件的方法将把文件夹创建在和

    //当前文件同一个文件夹中

    File
    file1
    =new
    File("sts.txt");

    System.out.println(file1.getAbsolutePath());

    //获得文件txt的大小,获得的是文件所占用的字节

    System.out.println(file1.length());

    //获得文件的最后修改时间
    lastModified();

    System.out.println(file.lastModified());

    • 目录的子文件获取

//listRoots()该方法获取此电脑的根目录,并放到数组中;

File[]
file
= File.listRoots();

System.out.println(Arrays.toString(file));

//获得一个目录下的子文件的对象listFiles也是放到数组中

//应用较多

File
file1
= new
File("E:\\A01-java");

File[]
files
= file1.listFiles();

System.out.println(Arrays.toString(files));

file1.list();//获得文件子文件的名字,主要还是使用listFiles方法

  • 文件的判断:

File
file
= new
File("E:\\A01-java\\bb");

System.out.println(file.exists());

//判断这个文件对象是否是文件isFile
返回布尔值

System.out.println(file.isFile());

//判断这个文件对象是否是目录返回布尔值

System.out.println(file.isDirectory());

//判断一个文件是否是绝对路径

System.out.println(file.isAbsolute());

File
file1
= new
File("E:\\A01-java//hellow.txt");

//查看文件是否可读的canRead或者是否可写

System.out.println(file1.canRead());

System.out.println(file1.canWrite());

//文件是否是隐藏的
isHidden

System.out.println(file1.isHidden());

递归:

    • 属于一种算法,方法本身调用本身:求5的阶乘

publicstaticvoid
main(String[] args)
{

的阶乘

/*

* 5*4*3*2*1 = 5*4!

* 4*3*2*1 = 4*3!

* 3*2*1 = 3*2!

* 2*1 = 2*1!

* 1 = 1!

*/

System.out.println("五的阶乘"+fn(5));

}

publicstaticint
fn(intnum)
{

intresult
= 1;

if(num
>1) {

//方法的自身调用自身

result
= num
* fn(num-1);

}

returnresult;

}

    • 文件的遍历:

      • 递归查询文件夹下的所有文件:需要长时间翻看

        //文件目录的层级

        staticintlevel;

        publicstaticvoid
        main(String[] args)
        {

        //创建一个目录

        File
        file
        = new
        File("E:\\Program
        Files\\Java");

        pathFile(file);

        }

        publicstaticvoid
        pathFile(File file)
        {

        if(file
        == null)
        {

        return;

        }

        //给层级做加一

        level++;

        //获得自文件对象的子文件对象列表

        File[]
        files
        = file.listFiles();

        System.out.println(Arrays.toString(files));

        //遍历这个子文件

        for(File
        f
        : files)
        {

        //打印层级缩进,是遍历的文件夹更好看

        for(inti
        = 0; i<level;
        i++)
        {

        System.out.print("\t");

        }

        System.out.println(f.getName());

        if(f.isDirectory())
        {

        pathFile(f);

        }

        }

        //本层次遍历完毕,把层级减回来

        level--;

        }

      • 将文件夹中的非目录文件全删

        //文件目录的层级

        staticintlevel;

        publicstaticvoid
        main(String[] args)
        {

        //创建一个目录

        File
        file
        = new
        File("E:\\A01-java");

        pathFile(file);

        }

        publicstaticvoid
        pathFile(File file)
        {

        if(file
        == null||!file.exists())
        {

        return;

        }

        //获得对象文件的子对象列表、

        File[]
        f
        = file.listFiles();

        for(File
        filee
        : f)
        {

        if(filee.isDirectory())
        {

        pathFile(filee);

        }else
        {

        filee.delete();

        }

        //经过遍历删除文件后,这个文件夹就变成了空的则就可以删除文件夹了

        //删除空文件夹

        filee.delete();

        }

        }

Map

  • 是一个键值对的集合

    花和尚

    豹子头

    鲁智深

    林冲

  • 如果想要从map中获得值,可以根据键

  • Map<Key,velue>

  • Map虽然是集合,但是和collection的接口无关

  • 我们可以通过key来获得相应的值,每个键只能
    映射一个值,一个映射不能包含重复的键。

  • Map<K,Y>表示泛型Map的key和value可以是任何类型(不能是基本数据类型)实际项目中K一般都是字符串类型。

  • HashMap:

    • map键是唯一的,collection子接口list集合中的与元素是可以重复的

    • 数据成对出现

    • 一个映射不能包括重复的键

    • 其实键就是Set,Set元素唯一,只能有一个null,元素是无序的。Map键完全遵照Set的这几个特点

    • 如果存在重复的Key
      就会把之前的覆盖掉

    • 值是可以重复的。

      import
      java.util.Map;

      import
      java.util.HashMap;

      publicclass
      MapTest {

      publicstaticvoid
      main(String[]args)
      {

      Map<String,String>
      map
      = new
      HashMap<>();

      map.put("豹子头",
      "林冲");

      map.put("及时雨",
      "松江");

      map.put("白日鼠",
      "白胜");

      map.put("瞎蒙子",
      "白胜");

      System.out.println(map);

      }

      }

    • 值也是可以多个为空的!

HashMap的子类

  • HashMap的特点

  • 主要特点和map相同,map和set特点相同,并且Hashmap不是线程安全的

  • 两个线程同时修改HashMap中的数据的时候,就会出错。

  • 可以将其变成线程安全,通过collections.`synchrolizedMap(map);可以通过这个方法将其变为线程安全的。

  • TreeMap
    和TreeSet相同,他是有序的,根据Key来排序,

  • 自己定义的类对象,如果想要进行排序需要在类中实现Comparable<Person>泛型对象

  • HashTable
    与HashMap的区别在于他是线程安全的,不允许任何的null键和值,其余的都一样、

  • linkedHashMap是有顺序的,根据其添加顺序排序,而HashMap是没有顺序排序的。HashMap用的是最多的,其根据键的大小排序

文件

  • File类属于IO下的类

  • 文件的构造器

    文件对象的创建:

    publicclass
    FileTest {

    publicstaticvoid
    main(String[] args)
    {

    //文件的构造器是用来创建文件对象的

    //创建文件的时候要保证文件路径正确。以下是创建了个对象

    File
    file
    = new
    File("E:\\FileTest.txt");//文件的绝对路径

    //直接输出则会打出文件的路径

    System.out.println(file);

    //第二种创建方式

    File
    file1
    = new
    File("D:\\aaa","tx.txt");

    System.out.println(file1.getName());

    //java中的file类的对象可以代表目录,也可以代表文件

    File
    file2
    = new
    File("F:\\aaa");

    System.out.println(file2.getName());

    //3
    根据目录文件创建一个文件

    File
    file3
    = new
    File(file2,"file3.txt");

    System.out.println(file3.getName());

    //文件构造器的三种方法掌握即可

    }

    }

  • 文件的删除和创建

  • 查看文件是否存在
    exists()方法用来查看文件是否存在,存在则返回true否则返回false

//创建目录

//创建的时候上一层的路径必须正确

booleannewMkdir
= file2.mkdir();

System.out.println(newMkdir);

  • 如果要同时创建多级目录则使用mkdirs方法

  • 删除文件方法

  • file.delete();删除方法,删除后不在回收站,只删除一个文件。删除路径的最后一层,返回值为布尔型,如果文件夹中有文件的花不可删除,只有空目录才能删除。

  • 文件的获取功能:

    //文件的构造器是用来创建文件对象的

    //创建文件的时候要保证文件路径正确。以下是创建了个对象

    File
    file
    = new
    File("E:\\FileTest.txt");//文件的绝对路径

    String
    absPath
    = file.getAbsolutePath();

    System.out.println(absPath);

    //相对路径就是当前项目的根:相对路径创建方法

    //下面这种不指定路径直接创建文件的方法将把文件夹创建在和

    //当前文件同一个文件夹中

    File
    file1
    =new
    File("sts.txt");

    System.out.println(file1.getAbsolutePath());

    //获得文件txt的大小,获得的是文件所占用的字节

    System.out.println(file1.length());

    //获得文件的最后修改时间
    lastModified();

    System.out.println(file.lastModified());

    • 目录的子文件获取

//listRoots()该方法获取此电脑的根目录,并放到数组中;

File[]
file
= File.listRoots();

System.out.println(Arrays.toString(file));

//获得一个目录下的子文件的对象listFiles也是放到数组中

//应用较多

File
file1
= new
File("E:\\A01-java");

File[]
files
= file1.listFiles();

System.out.println(Arrays.toString(files));

file1.list();//获得文件子文件的名字,主要还是使用listFiles方法

  • 文件的判断:

File
file
= new
File("E:\\A01-java\\bb");

System.out.println(file.exists());

//判断这个文件对象是否是文件isFile
返回布尔值

System.out.println(file.isFile());

//判断这个文件对象是否是目录返回布尔值

System.out.println(file.isDirectory());

//判断一个文件是否是绝对路径

System.out.println(file.isAbsolute());

File
file1
= new
File("E:\\A01-java//hellow.txt");

//查看文件是否可读的canRead或者是否可写

System.out.println(file1.canRead());

System.out.println(file1.canWrite());

//文件是否是隐藏的
isHidden

System.out.println(file1.isHidden());

递归:

    • 属于一种算法,方法本身调用本身:求5的阶乘

publicstaticvoid
main(String[] args)
{

的阶乘

/*

* 5*4*3*2*1 = 5*4!

* 4*3*2*1 = 4*3!

* 3*2*1 = 3*2!

* 2*1 = 2*1!

* 1 = 1!

*/

System.out.println("五的阶乘"+fn(5));

}

publicstaticint
fn(intnum)
{

intresult
= 1;

if(num
>1) {

//方法的自身调用自身

result
= num
* fn(num-1);

}

returnresult;

}

  • 文件的遍历:

    • 递归查询文件夹下的所有文件:需要长时间翻看

      //文件目录的层级

      staticintlevel;

      publicstaticvoid
      main(String[] args)
      {

      //创建一个目录

      File
      file
      = new
      File("E:\\Program
      Files\\Java");

      pathFile(file);

      }

      publicstaticvoid
      pathFile(File file)
      {

      if(file
      == null)
      {

      return;

      }

      //给层级做加一

      level++;

      //获得自文件对象的子文件对象列表

      File[]
      files
      = file.listFiles();

      System.out.println(Arrays.toString(files));

      //遍历这个子文件

      for(File
      f
      : files)
      {

      //打印层级缩进,是遍历的文件夹更好看

      for(inti
      = 0; i<level;
      i++)
      {

      System.out.print("\t");

      }

      System.out.println(f.getName());

      if(f.isDirectory())
      {

      pathFile(f);

      }

      }

      //本层次遍历完毕,把层级减回来

      level--;

      }

    • 将文件夹中的非目录文件全删

      //文件目录的层级

      staticintlevel;

      publicstaticvoid
      main(String[] args)
      {

      //创建一个目录

      File
      file
      = new
      File("E:\\A01-java");

      pathFile(file);

      }

      publicstaticvoid
      pathFile(File file)
      {

      if(file
      == null||!file.exists())
      {

      return;

      }

      //获得对象文件的子对象列表、

      File[]
      f
      = file.listFiles();

      for(File
      filee
      : f)
      {

      if(filee.isDirectory())
      {

      pathFile(filee);

      }else
      {

      filee.delete();

      }

      //经过遍历删除文件后,这个文件夹就变成了空的则就可以删除文件夹了

      //删除空文件夹

      filee.delete();

      }

      }

Java map笔记的更多相关文章

  1. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  2. 20145330第五周《Java学习笔记》

    20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...

  3. Java系列笔记(6) - 并发(上)

    目录 1,基本概念 2,volatile 3,atom 4,ThreadLocal 5,CountDownLatch和CyclicBarrier 6,信号量 7,Condition 8,Exchang ...

  4. Java学习笔记——动态代理

    所谓动态,也就是说这个东西是可变的,或者说不是一生下来就有的.提到动态就不得不说静态,静态代理,个人觉得是指一个代理在程序中是事先写好的,不能变的,就像上一篇"Java学习笔记——RMI&q ...

  5. 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

    原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...

  6. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  7. Java开发笔记(八十二)注解的基本单元——元注解

    Java的注解非但是一种标记,还是一种特殊的类型,并且拥有专门的类型定义.前面介绍的五种内置注解,都可以找到对应的类型定义代码,例如查看注解@Override的源码,发现它的代码定义是下面这样的: @ ...

  8. Java开发笔记(六十五)集合:HashSet和TreeSet

    对于相同类型的一组数据,虽然Java已经提供了数组加以表达,但是数组的结构实在太简单了,第一它无法直接添加新元素,第二它只能按照线性排列,故而数组用于基本的操作倒还凑合,若要用于复杂的处理就无法胜任了 ...

  9. Java开发笔记(六十六)映射:HashMap和TreeMap

    前面介绍了两种集合的用法,它们的共性为每个元素都是唯一的,区别在于一个无序一个有序.虽说往集合里面保存数据还算容易,但要从集合中取出数据就没那么方便了,因为集合居然不提供get方法,没有get方法怎么 ...

随机推荐

  1. VirtualBOX 虚拟机安装 OS X 10.9 Mavericks 及 Xcode 5,本人X220亲测(超详细截图)

    http://www.cnblogs.com/yipu/p/3611611.html http://bbs.feng.com/read-htm-tid-7625465.html OS X Maveri ...

  2. VC 使用msxml6.dll动态链接库中的函数读写XML文件

    VC 使用msxml6.dll动态链接库中的函数读写XML文件 目录 1 引言 2 .dll使用方法 3 常用函数总结 4 实例应用 5 运行效果预览 6 补充说明 7 不足之处 8 更新   引言: ...

  3. jQuery实时聊天jquery-chat

    jquery-chat是基于jQuery UI + Node.js + Socket.IO 实现100%纯JavaScript实时聊天(客户端和服务器都是JS),实现了facebook / Gmail ...

  4. 关于Android开发四大组件

    文章主要是讲Android开发的四大组件,本文主要分为 文章源自:http://www.cnblogs.com/pepcod/archive/2013/02/11/2937403.html 一.Act ...

  5. 联想笔记本进入不了BIOS的解决方法

    当计算机遇到问题时,很多情况下需要进入BIOS进行解决.但很多新出的联想笔记本电脑在开机时,无论怎么疯狂的按F2,Fn+F2,F12或者Del,都无法进入BIOS,十分气人. 这种现象出现的原因是联想 ...

  6. Zookeeper详解-工作流和leader选举(三)

    一.工作流 一旦ZooKeeper集合启动,它将等待客户端连接.客户端将连接到ZooKeeper集合中的一个节点.它可以是leader或follower节点.一旦客户端被连接,节点将向特定客户端分配会 ...

  7. spark 源码分析之二 -- SparkContext 的初始化过程

    创建或使用现有Session 从Spark 2.0 开始,引入了 SparkSession的概念,创建或使用已有的session 代码如下: val spark = SparkSession .bui ...

  8. CTF干货合集

    CTF练习平台 http://hackinglab.cn/ 网络信息安全攻防学习平台 http://captf.com/ ctf题目 http://oj.xctf.org.cn/ XCTF_OJ练习平 ...

  9. 08、MySQL—字符串型

    字符串型 1.Char 定长字符:指定长度之后,系统一定会分配指定的空间用于存储数据 基本语法: char(L),L代表字符数(中文与英文字母一样),L长度为0到255 2.Varchar 变长字符: ...

  10. Python笔记【3】_元组学习

    #!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 ''' tuple:以圆括号“()”括起来,以“ ...