Java map笔记

Mapjava

  • 是一个键值对的集合算法

    花和尚数组

    豹子头安全







    鲁智深spa

    林冲线程







  • 若是想要从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("\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<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("\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();

      }

      }

相关文章
相关标签/搜索