HashTable
HashMap&HashTable
编号 | 比较 | HashMap | HashTable |
---|---|---|---|
1 | 线程安全 | ✕ | ✓ |
2 | key=null | ✓ | ✕ |
3 | value=null | ✓ | ✕ |
4 | 效率 | 高 | 低 |
package com.ffyc.map;
import javax.print.DocFlavor;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Map;
public class HashTableDemo01 {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>();
Map<String,Integer> table = new Hashtable<>();//线程安全
// map.put("a",123);
// map.put("b",456);
// map.put(null,1);
// map.put(null,null);//覆盖掉1了
// map.put("c",789);
//
// System.out.println(map.get(null));
table.put("a",123);
table.put("b",456);
table.put(null,1);
table.put(null,null);
table.put("c",null);
System.out.println(table.get(null));//Exception in thread "main" java.lang.NullPointerException
}
}
Properties 属性
ymal–>学习python的
属性,读取文件格式 要写成:key = value eg:xyz=123;
文件格式:xxxx.properties
package com.ffyc.map;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.Reader;
import java.util.Properties;
import java.util.Scanner;
public class PropertiesDemo02 {
public static void main(String[] args) throws Exception {
Properties properties = new Properties();
Reader reader = new FileReader("D:\\java-workspace\\FF20240725\\src\\com\\resources\\User.properties");
properties.load(reader);
// System.out.println(properties.getProperty("xyz"));
// System.out.println(properties.getProperty("user.username"));
/*
**User.properties文件:
* #xyz=123
* #abc=456
* #wyz=666
*
* #user.username=yabi
* #user.password=123
*/
Scanner sc = new Scanner(System.in);
System.out.println("用户户名:");
String username = sc.nextLine();
System.out.println("密码:");
String password = sc.nextLine();
if (username.equals(properties.getProperty("user.username"))
&& password.equals(properties.getProperty("user.password"))){
System.out.print("登陆成功");
}else {
System.out.print("用户名|密码错误");
}
}
}
对象流——存储对象
初打印
改良
序列化/反序列化
序列化:给对象编号拆开,到了再反序列化组装。
末尾不确定 不要用循环
存多个对象时
Map