• Java map笔记


    Map

    • 是一个键值对的集合

      花和尚

      豹子头







      鲁智深

      林冲







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

    • Map<Keyvelue>

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

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

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

    • HashMap

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

      • 数据成对出现

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

      • 其实键就是SetSet元素唯一,只能有一个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相同,mapset特点相同,并且Hashmap不是线程安全的

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

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

    • 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的阶乘

    /*

    * 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(" ");

          }

          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<Keyvelue>

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

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

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

    • HashMap

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

      • 数据成对出现

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

      • 其实键就是SetSet元素唯一,只能有一个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相同,mapset特点相同,并且Hashmap不是线程安全的

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

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

    • 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的阶乘

    /*

    * 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(" ");

        }

        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 的学习知识,在我所写的内容中有不懂的可以直接私信我。
  • 相关阅读:
    我的第一个项目--总结
    c++中的继承
    指针带来的意想不到的功能紊乱
    一个很难发现的内存泄漏
    我的第一个项目--迭代开发总结
    内存访问冲突问题(非法内存访问)
    Debug Assertion Failed mfc140ud.dll
    javaweb 开发总结五-----servlet开发(一)
    javaweb学习总结四---http协议
    Tomcat服务器学习和使用二·
  • 原文地址:https://www.cnblogs.com/interflow/p/11218064.html
Copyright © 2020-2023  润新知