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

      }

      }

相關文章
相關標籤/搜索