Map的遍历
Collection集合编列 (1)foreach (2) Iterator对象遍历
map不持之foreach
shMap的内部存储结构其实是数组和链表的结合。
//泛型的使用 一般使用
class Student<T>{
private String name;
private T score;
}
//指定泛型的上限
class Generic<T extends Person>{
...
}
//泛型的继承
class Son2<A,B> extends Father<Integer,String>{
}
//子类保留父类的泛型
//1)全部保留
class Son3<T1,T2,A,B> extends Father<T1,T2>{
}
//2)部分保留
class Son4<T2,A,B> extends Father<Integer,T2>{
}
多态的存在的三个前提:
①有继承关系
②自类要重写父类的方法
③父类引用指向自类的对象
Animal animal=new Cat()
这时候自类调用了方法的时候 就是调用了Cat中的重写的方法
但是对于Cat中自己的方法 就不能调用了
Collections工具类
-
public static <T> boolean replaceAll(List<T> list,T oldVal,T newVal):使用新值替换 List 对象的所有旧值
-
public static <T> void copy(List<? super T> dest,List<? extends T> src)将src中的内容复制到dest中
-
public static void swap(List<?> list,int i,int j)将指定 list 集合中的 i 处元素和 j 处元素进行交换
-
public static <T extends Comparable<? super T>> void sort(List<T> list)根据元素的自然顺序对指定 List 集合元素按升序排序
-
public static <T> void sort(List<T> list,Comparator<? super T> c)根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
-
public static <T extends Comparable<? super T>> void sort(List<T> list)根据元素的自然顺序对指定 List 集合元素按升序排序
-
public static <T> T max(Collection<? extends T> coll,Comparator<? super T> comp)在coll集合中找出最大的元素,集合中的对象必须是T或T的子类对象,按照比较器comp找出最大者
File文件路径分隔符
File file1 = new File("d:\\myjava\\info.txt");
File file2 = new File("d:" + File.separator + "myjava" + File.separator + "info.txt");
File file3 = new File("d:/myjava/info.txt");
File类的常用方法之(一)
常用的方法:
1、获取文件或目录名:String getName()
-
获取文件大小:long length()
只能获取文件的大小,不能直接获取目录的大小(目录的大小由它的所有下级的大小的总和相加)
-
数组有length属性:array.length
-
字符串有length():str.length()
-
文件有length():file.length()
3、获取文件的路径:
(1)getPath()
(2)getAbsolutePath()
如果file对象指定的就是绝对路径,两者一样,如果file指定的是相对路径,那么两者不一样
4、各种性质判断
(1)可读:canRead()
(2)可写:canWrite()
(3)可执行(Linux)
(4)是否隐藏:isHidden()
5、是文件还是目录
(1)是否是文件:isFile():注意,如果不存在的文件,默认返回false
(2)是否是文件夹:isDirectory():注意,如果不存在的目录,默认返回false
6、是否存在:boolean exists()
7、获取最后修改时间:long lastModified()
返回的是毫秒数,与时间点(1970 年 1 月 1 日,00:00:00 GMT)之间的毫秒数表示;
可以结合java.util.Date和java.text.SimpleDateFormat格式化
8、获取上级目录:
(1)String getParent():如果path中有指定父目录,就返回父目录,否则返回null
(2)File getParentFile()
File类的常用方法之(二)
操作文件或目录
-
创建文件:boolean createNewFile()throws IOException
如果指定的文件不存在并成功地创建,则返回 true;如果指定的文件已经存在,则返回 false
(2)创建临时文件,通常会结合public void deleteOnExit()使用
-
public static File createTempFile(String prefix,String suffix) throws IOException在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。调用此方法等同于调用 createTempFile(prefix, suffix, null)。 prefix - 用于生成文件名的前缀字符串;必须至少是三字符长。suffix - 用于生成文件名的后缀字符串;可以为 null,在这种情况下,将使用后缀 ".tmp"
-
public static File createTempFile(String prefix,String suffix,File directory)throws IOException在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。prefix - 用于生成文件名的前缀字符串;必须至少是三字符长。suffix - 用于生成文件名的后缀字符串;可以为 null,在这种情况下,将使用后缀 ".tmp" 。directory - 将创建的文件所在的目录;如果使用默认临时文件目录,则该参数为 null
(3)创建目录:
boolean mkdir() :必须确保父目录存在,否则创建失败
boolean mkdirs():如果父目录链不存在,会一同创建父目录链
(4)删除文件:boolean delete()
当且仅当成功删除文件或目录时,返回 true;否则返回 false
如果是目录,那么只能删除空目录。否则需要先将目录下的所有内容删除才能将该目录删除。
(5)重命名:boolean renameTo(File dest)
File类的常用方法之(三)
(1)public String[] list()列出当前目录的下级内容
返回的是下级的目录或文件的名称
(2)public File[] listFiles() 列出当前目录的下级内容
返回的是下级的目录或文件对应的File对象
配合递归 可以列出下级的下级....
-
public File[] listFiles(FileFilter filter)返回所有满足指定过滤器的文件和目录。如果给定 filter 为 null,则接受所有路径名。否则,当且仅当在路径名上调用过滤器的 FileFilter.accept(java.io.File) 方法返回 true 时,该路径名才满足过滤器。如果当前File对象不表示一个目录,或者发生 I/O 错误,则返回 null。
-
public File[] listFiles(FilenameFilter filter)返回所有满足指定过滤器的文件和目录。如果给定 filter 为 null,则接受所有路径名。否则,当且仅当在路径名上调用过滤器的 FilenameFilter.accept(java.io.File, java.lang.String) 方法返回 true 时,该路径名才满足过滤器。如果当前File对象不表示一个目录,或者发生 I/O 错误,则返回 null。
-
public static File[] listRoots()列出可用的文件系统根。
File file = new File("myjava");
File[] listFiles = file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
//pathname是file目录中的所有子目录或子文件
//如果只想要返回".java"结尾的
return pathname.getName().endsWith(".java");
}
});