Properties :
存储的键值对都是字符串
Properties可以保存到流中或从流中加载。
软编码 : 经常改动的内容不要定义在源代码中,定义在一个外部的文件中-->配置文件,从程序中每次动态从文件中进行读取内容,使用读入的最新内容
配置文件 : properties格式,符合Properties特点: 键值对 都是字符串
Properties pro = new Properties();
//设置键值对为字符串数据
/* pro.setProperty("name","张三");
pro.setProperty("pwd","123");*/
//获取键值对为字符串的数据
System.out.println(pro.getProperty("name"));
System.out.println(pro);
//void load(InputStream inStream) 从输入字节流中读取属性列表(键和元素对)。
pro.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
//从配置文件中读取数据
System.out.println(pro.getProperty("name"));
System.out.println(pro.getProperty("pwd"));
Collections:
类 java.util.Collections 提供了对Set、List、Map操作的工具方法。
如何处理HashMap的线程不安全问题:
1.可以Hashtable
1).线程安全问题
2).HashMap允许key与value为null,Hashtable不允许
3).细节问题,底层源码
2.static <K,V>Map<K,V> synchronizedMap(Map<K,V> m) 返回由指定映射支持的同步(线程安全)映射。
3.juc 高级并发编程包,ConcurrentHashMap<K,V>-->推荐
List<Integer> list = new ArrayList<>();
list.add(3);
list.add(1);
list.add(2);
list.add(5);
list.add(4);
System.out.println(list);
//sort 升序排序徐
Collections.sort(list);
System.out.println(list);
//sort(List<T> list, Comparator<? super T> c)
//shuffle 随机排序
//Collections.shuffle(list);
System.out.println(list);
//void reverse(List)翻转
//Collections.reverse(list);
System.out.println(list);
//binarySearch 如果找到返回索引,找不到返回-插入点-1
System.out.println(Collections.binarySearch(list,12));