SET集合与MAP集合以及I/O流:
set集合讲了如何保证元素的唯一性:
代码实例:
public static void demo03(){
Student stu1 = new Student("张无忌",18);
Student stu2 = new Student("李寻欢",21);
Student stu3= new Student("李白",22);
Student stu4 = new Student("白居易",22);
Student stu5 = new Student("张无忌",18);
Student stu6 = new Student("奥特曼打怪兽",21);
Set<Student> set = new HashSet<Student>();
set.add(stu1);
set.add(stu2);
set.add(stu3);//地址值不同,set是看hashcode值是否相等的
set.add(stu4);//,如果相等就要重写一个equals和hashcode的方法进行判断属性是否相同
set.add(stu5);//以此保证唯一性
set.add(stu6);
for(Object obj:set){
System.out.println(obj);
/*未重写时输出结果;重写后不会输出重复的1属性
学生姓名:李白,学生年龄22
学生姓名:李寻欢,学生年龄21
学生姓名:张无忌,学生年龄18
学生姓名:张无忌,学生年龄18
学生姓名:李寻欢,学生年龄21
学生姓名:白居易,学生年龄22
*/
}
以及MAP集合:
及其性质:
public static void main(String[] args) {
Demo01();
System.out.println("==========================================");
Demo02();
System.out.println("============================================");
Demo03();
}
public static void Demo01(){
Map<String, String> map = new HashMap<String,String>();
// 键key , 值value
map.put("001", "孙俪");
map.put("002", "黄晓明");
map.put("003", "李亚男");
map.put("004", "晴空万里");
map.put("004", "晴空万里");
map.put("004", "晴空万里");
System.out.println(map.get("001"));//获取第一个键值对应元素//必须通过键值来获取值,
//不能用索引获取
System.out.println("========================================================");
Set keys = map.keySet();//[001,002,003,004]获取集合中链的集合
System.out.println("==============遍历1================");
for(Object obj:keys){
String key = (String)obj;
String value =map.get(key);
System.out.println((String)obj);
System.out.println(value);
/*输出结果
001
孙俪
002
黄晓明
003
苏绪
004
晴空万里
*/
System.out.println("==============遍历2================");
Collection vals = map.values();//获取集合中集合的值
for(Object obj2:vals){
String value2 = (String)obj2;
System.out.println(value2);
/*输出结果
孙俪
黄晓明
苏绪
晴空万里
*/
}
}
public static void Demo02(){
Map countries = new HashMap();
countries.put("CN", "中华人民共和国");
countries.put("FR", "法兰西共和国");
countries.put("US", "美利坚合众国");
countries.put("UK", "大不列颠渝北爱尔兰联合国");
//显示"CN"对应国家的中文全称
System.out.println("=====================================");
String country = (String)countries.get("CN");
System.out.println("CN对应的国家是:"+country);
//显示集合中元素个数
System.out.println("===============显示集合中元素个数=================");
System.out.println("Map中有:"+countries.size());
//两次判断Map中是否存在“FR”键
System.out.println("==================两次判断Map中是否存在“FR”键====================");
System.out.println("Map中是否包含“FR”的key:"+countries.containsKey("FR"));
countries.remove("FR");
System.out.println("Map中是否包含“FR”的key:"+countries.containsKey("FR"));
//分别显示键集、键值和键值对集
System.out.println("==============分别显示键集、键值和键值对集====================");
System.out.println(countries.keySet());
System.out.println(countries.values());
System.out.println(countries);
//清空HashMap并判断
System.out.println("=============清空HashMap并判断================");
countries.clear();
if(countries.isEmpty()){
System.out.println("已清空数据");
}
}
public static void Demo03(){
Map<String, Student> hashMap = new HashMap<String,Student>();
Student s1 = new Student("吴京",15);
Student s2 = new Student("成龙",25);
Student s3 = new Student("李连杰",35);
Student s4 = new Student("甄子丹",55);
Student s5 = new Student("李小龙",21);
//Teacher tea1 = new Teacher("雨晴","晴空万里");
//添加元素
hashMap.put("005", s1);
hashMap.put("006", s2);
hashMap.put("007", s3);
hashMap.put("008", s4);
hashMap.put("009", s5);
//hashMap.put("010",tea1);
Set<String> set = hashMap.keySet();//遍历
for(String key:set){
//按理说,应该是String类型
//但是却没有说String类型
Student value = hashMap.get(key);
System.out.println(key+"-----"+value.getName());
}
}
I/O流:
public static void main(String[] args) throws IOException {
//创建File对象
File file = new File("d:\\text1.txt");
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//返回boolean,如果不存在就创建,返回true,如果存在就不创建,返回false
//在现有文件下创建文件
File file1 = new File("d:\\hello\\a.txt");
System.out.println("createNewFile"+file1.createNewFile());
//未明确文件所创建的位置
File file2 = new File("b.txt");
file2.createNewFile();
//创建文件夹
File file3 = new File("d:\\hw");
file3.mkdir();//创建目录,返回Boolean类型
//创建多层次目录
File file4 = new File("d:\\aa\\bb\\cc\\dd");
System.out.println(file4.mkdirs());
}
public static void Demo01() throws IOException{
//另外两种方法创建文件夹
File file2 = new File("d:\\hello","a.txt");
System.out.println("createNewFile"+file2.createNewFile());
}
public static void Demo02() throws IOException{
//另外两种方法创建文件夹
File file = new File("d:\\hello");
File file2 =new File(file,"a.jpg");
System.out.println("createNewFile"+file2.createNewFile());
}
public static void Demo03() throws IOException{
File file = new File("d:\\hw");
System.out.println(file.mkdir());
File file2 = new File("d:\\hw\\a.txt");
file2.createNewFile();
//删除文件
//删除错误,文件夹必须为空才能删除
//System.out.println(file.delete());
System.out.println("=============================");
//所以先删除里面的文件在删除文件夹
file2.delete();
file.delete();
}
public static void Demo04() throws IOException{
File file = new File("d:\\hello\\a.txt");
//判断是否为目录
System.out.println("=================判断是否为目录===============");
System.out.println(file.isDirectory());
//判断是否为文件
System.out.println("=================判断是否为文件=================");
System.out.println(file.isFile());
//判断是否存在
System.out.println("===============判断是否存在========================");
System.out.println(file.exists());
//如果不存在才创建
if(!file.exists()){
System.out.println(file.createNewFile());
}
//如果存在才删除
if(file.exists()){
System.out.println(file.delete());
}
}