目录
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();
}
}
}
}