Map集合和File类的简单学习

目录

1.Map集合

1.2Map集合中的value存的是对象

2.File类

2..1File类的构造方法

2.2File类下面的方法

2.3递归


1.Map集合

1.2Map集合中的value存的是对象

2.File类

2..1File类的构造方法

2.2File类下面的方法

```


1.Map集合

Interface Map<K,V>

K:    key键

V:    value值

键值对,意味着map集合中存的数据是键值对象=形式的数据

### 1.1Map中常用的方法

```Java
增:
    V put(K key, V value);添加键值对的数据到map集合中
    V putAll(Map<? extends K> k, Map<? extends V> V);将一个map集合存放到另外一个map集合中
    
删:
    V remove(K Key); 通过键删除键值对的数据,返回值是值
改:
    V put(K key, V value);当键值存在的时候,会将value值覆盖掉
查:
    int size();查看集合中元素的个数
    boolean isEmpty();判断是否为空,如果为空返回true
    boolean containsKey();是否包含这个键
    boolean containsValue();是否包含这个值
    重要的方法:
    V get(k key);通过键获取值
    Set<K> keySet();获取map集合中的键,然后存到set集合中
    Collection<V> values();获取map集合的值,存到Collection集合中
    Set<Map.Entry<K.V>> entrySet();将map集合的键值对,存到了set集合
        Map.Entry这个接口的方法
            getKey:返回键值对的键
            getValue:返回键值对的值
```

1.2Map集合中的value存的是对象

package com.qfedu.test;

import java.util.*;

class Student{
    String name;
    int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
public class Demo1 {
    public static void main(String[] args) {
        List<Student> list1 = new ArrayList<>();
        List<Student> list2 = new ArrayList<>();
        list1.add(new Student("张三",20));
        list1.add(new Student("李四",21));
        list1.add(new Student("王五",23));
        list1.add(new Student("周六",25));

        list2.add(new Student("张一",19));
        list2.add(new Student("赵四",18));
        list2.add(new Student("钱五",26));
        list2.add(new Student("李六",22));

        Map<Integer,List> map = new HashMap<>();
        map.put(1,list1);
        map.put(2,list2);

        for (List<Student> value : map.values()) {
            for (Student student : value) {
                System.out.println(student.name);
            }
        }

    }
}

2.File类

文件和文件夹(文件路径)的抽象表示,是专门来出来u磁盘上面的文件或者文件夹的

之前都是手动创建,现在可以借助Java封装好的类创建文件夹和文件。

路径问题:

​        相对路径:

​                    得有一个参照物

​                        ./当前工作目录

​                        ../上一级路径的目录

​                        ../../上两级目录

​        绝对路径:

​                    磁盘的跟路径一级一级的往下找

​                    C:\ccc\ddd\1.png

2..1File类的构造方法

File(String pathname)(常用)

通过将给定的路径名字符串转换为抽象路径名来创建新的 `File`实例。

File(String parent, String child)

从父路径名字符串和子路径名字符串创建新的 `File`实例。

2.2File类下面的方法

1.boolean  createNewFile();创建一个文件 返回值是布尔类型的数据

​        1.如果文件路径不存在会报错

​        2.如果文件名字已经存在,返回false

​        3.磁盘坏了,创建不了

2.boolean mkdir();创建单级路径

3.boolean mkdirs();创建多级路径

删除文件或者文件夹

4.boolean delete();立即删除文件(常用)

5.void deleteOnExit();不会立即删除,是程序退出以后才删除的

File对象的判断方法,比较常用

6.boolean isFile();是否是文件【常用】

7.boolean isDirectory();是否是文件夹【常用】

8.boolen isHidden();是否是隐藏文件

9.boolean isAbsoult();是否是绝对路径

10.boolean exists();判断文件或者文件夹是否存在【重要】

返回值是String类型的数据的

11.String getName();获取文件或者文件夹的名字

12.String getPath();获取当前的对象的路径

13.String getParent();获取当前文件对象的上一级目录

返回值是long类型数据的

14.long length();返回值是文件占用的字节数

15.long lastModified();获取当前文件最后一次修改的时间(这个是毫秒,除以1000变成秒,才是时间戳)

16.File[] listFiles();获取当前文件夹下面的所有的=文件

17.String[] list();获取当前文件夹下面的所有文件的名字

2.3递归

package com.qfedu.b_file;

import java.io.File;

public class Demo9 {
    public static void main(String[] args) {
        File file = new File("c:/aaa/bbb");
        del(file);
    }
    public static void del (File file) {
        //所有文件先取出来
        File[] files = file.listFiles();
        /**
         * c:\aaa\bbb\1.txt
         * c:\aaa\bbb\ddd
         *  file1是ddd  是文件夹
         *  1.txt删除了
         *  再次执行del(file1) ddd文件夹
         *      eee
         *      2.txt
         *        再次执行del(eee) eee文件夹了
         *
         *
         */
        for (File file1 : files) {
            System.out.println(file1);
            if (file1.isDirectory()) {//是文件夹
                del(file1);//递归

            }else {//是文件
                file1.delete();
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值