Java——File类,Set类,Map类
2018-01-25 17:22
288 查看
File类简介
定义
所谓File类就是对文件进行一系列操作的方法的集合。比如有:创建文件、文件夹;删除文件、文件夹;重命名;判断是否存在;获取最后一次修改时间,等等。代码实现
package com.Gyn; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; public class File1 { public static void main(String[] args) throws IOException { test8(); } //新建文件 public static void test1() throws IOException { File f1=new File("D:\\HA.txt"); boolean createNewFile = f1.createNewFile(); System.out.println(createNewFile); } //删除文件 public static void test2() throws IOException { File f1=new File("D:\\HA.txt"); boolean delete = f1.delete(); System.out.println(delete); } //新建文件夹 (若要删除文件夹,必须先删除里面的子文件) public static void test3() throws IOException { File f1=new File("D:\\HA"); boolean mkdir = f1.mkdir(); System.out.println(mkdir); } //重命名文件夹 public static void test4() throws IOException { File f1=new File("D:\\HA"); File f2=new File("D:\\VBA"); boolean renameTo = f1.renameTo(f2); System.out.println(renameTo); } //判断是否为目录(文件夹) public static void test5() throws IOException { File f1=new File("D:\\VBA"); boolean directory = f1.isDirectory(); System.out.println(directory); } //判断是否存在 public static void test6() throws IOException { File f1=new File("D:\\VBA"); boolean exists = f1.exists(); System.out.println(exists); } //获取最后一次的修改时间 public static void test7() throws IOException { File f1=new File("D:\\VBA"); long time = f1.lastModified(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = sdf.format(new Date(time)); System.out.println(format); } //获取指定文件夹下的子文件名称(list) public static void test8() throws IOException { File f1=new File("D:\\VBA"); String[] list = f1.list(); for(String s:list) { //for循环增强版 System.out.println(s); } } //listFiles输出格式为File public static void test9() throws IOException { File f1=new File("D:\\VBA"); File[] listFiles = f1.listFiles(); for(int i=0;i<listFiles.length;i++) { File f=listFiles[i]; System.out.println(f); } } }
Set类简介
Java中的Set类继承了Conllection类,是一种集合类。Set类中不允许重复对象,而且其中的对象不按特定的方式排序。Set类主要有以下几个实现类。(1)HashSet类按照哈希算法来存取集合中的对象,存取速度比较快。Java.util.HashSet类实现了Java.util.Set接口,它不允许出现重复元素;不保证和政集合中元素的顺序;允许包含值为null的元素,但最多只能有一个null元素。(2)LinkedHashSet集合同样是根据元素的hashCode值来决定元素的存储位置,但是它同时使用链表维护元素的次序,保持元素的添加顺序。LinkedHashSet在迭代访问Set中的全部元素时,性能比HashSet好,但是插入时性能稍微逊色于HashSet。(3)TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。TreeSet描述的是Set的一种变体——可以实现排序等功能的集合,它在讲对象元素添加到集合中时会自动按照某种比较规则将其插入到有序的对象序列中。
代码实现
package com.Gyn; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.TreeSet; public class SetClass { public static void main(String[] args) { test3(); } //HashSet:1.无序,2.重写HashCode()和equals()防止重复 public static void test1() { Set<String> s=new HashSet<String>(); s.add("鸣人"); s.add("路飞"); s.add("史蒂夫"); Iterator<String> iterator = s.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); } } /** * TreeSet:按自然顺序排列 * 1.数字(1,2,3,4) * 2.字母(a,b,c,d) */ public static void test2() { Set<Integer> s=new TreeSet<Integer>(); s.add(1); s.add(3); s.add(5); s.add(2); Iterator<Integer> iterator = s.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); } } //泛型引用Person类 public static void test3() { Set<Person> s=new TreeSet<Person>(); //多态,父类引用子类对象 Person p1=new Person("Bush"); Person p2=new Person("Aush"); Person p3=new Person("Vush"); Person p4=new Person("Gush"); Person p5=new Person("Gush"); //Person类中重写了,防止重复 s.add(p1); s.add(p2); s.add(p3); s.add(p4); s.add(p5); //用迭代器遍历输出 Iterator<Person> iterator = s.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); } } }
test3()调用的person类
package com.Gyn; /** *Person类实现Comparable接口 */ public class Person implements Comparable<Person>{ /** * Comparable接口:定义排序的规范(例如:按名字首字母排序,test3) */ @Override public int compareTo(Person p) { return this.name.compareTo(p.name); //自己的名字和其他名字比较 } String name; public Person() { super(); } public Person(String name) { super(); this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } //重写toString,定义输出格式 @Override public String toString() { return "Person [name=" + name + "]"; } //重写HashCode和Equals @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Person other = (Person) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } }
Map类简介
java.util 中的集合类包含 Java 中某些最常用的类。 最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。 从概念上而言,您可以将 List 看作是具有数值键的 Map。 而实际上,除了 List 和 Map 都在定义 java.util 中外,两者并没有直接的联系。本文将着重介绍核心 Java 发行套件中附带的 Map,同时还将介绍如何采用或实现更适用于您应用程序特定数据的专用 Map。
代码实现
package com.Gyn; import java.util.HashMap; import java.util.Iterator; import java.util.Set; import java.util.Map.Entry; public class TestMap { public static void main(String[] args) { test3(); } //映射HashMap public static void test1() { HashMap<Integer,Integer> h1=new HashMap<Integer,Integer>(); h1.put(1,2); h1.put(2,4); h1.put(3,6); System.out.println("size="+h1.size()); System.out.println(h1.get(1)); System.out.println(h1.get(2)); System.out.println("----------"); HashMap<String,String> h2=new HashMap<String,String>(); h2.put("海贼王", "路飞"); h2.put("火影忍者","鸣人"); h2.put("火影忍者", "佐助"); //一对一。若重复会替换之前的 System.out.println(h2.get("火影忍者")); System.out.println(h2.get("海贼王")); } //得到键 public static void test2() { HashMap<Integer,String> h=new HashMap<Integ 9a4b er,String>(); h.put(1, "卡西欧"); h.put(2, "梅长苏"); h.put(3, "苏烈"); Set<Integer> keySet = h.keySet(); Iterator<Integer> it = keySet.iterator(); while(it.hasNext()) { Integer key = it.next(); String value=h.get(key); System.out.println(""+key+" "+value); } } //同时得到键和值(Entry) public static void test3() { HashMap<Integer,String> h=new HashMap<Integer,String>(); h.put(1, "卡西欧"); h.put(2, "梅长苏"); h.put(3, "苏烈"); Set<Entry<Integer,String>> entrySet = h.entrySet(); Iterator<Entry<Integer, String>> iterator = entrySet.iterator(); while(iterator.hasNext()) { Entry<Integer, String> next = iterator.next(); Integer key = next.getKey(); String value = next.getValue(); System.out.println("key="+key+" value="+value); } } }
轻松趣图
学习这么久,也该放松放松了,找了几张IT趣图,希望可以逗君一笑,O(∩_∩)O哈哈~1. 新手程序员第一次做项目的过程
2. 客户要求 VS 客户预算
3.刚写了一段代码,第一次运行……
相关文章推荐
- JavaFile类和递归
- Java IO流之 File类
- IO流_Java_File类总结
- Java JDK 学习笔记:File类
- java中file类简单介绍
- JAVA:IO流——File类
- Java学习笔记——File类之文件管理和读写操作、下载图片
- java File类
- Java学习笔记——File类文件管理及IO读写、复制操作
- Java--file类
- Java中主要Map类概述
- Java File类的介绍
- Java中的文件File类
- java File类 简单用法举例
- 黑马程序员——Java语言基础——07.IO流(2)File类和其他流
- File类详解--Java基础083
- Java的IO操作(一) – File类,RandomAccessFile类,FileInputStream、FileOutputStream类
- 黑马程序员java学习—File类,Properties类和递归思想
- 关于java基础--File类与FileFilter过滤器的详解与测试
- Java面向对象——File类