package aiyh.utils.fileUtil; import java.util.*; /** * @author EBU7-dev1-ayh * @create 2021/11/29 0029 13:53 */ public class ProperUtil extends Properties { //LinkedHashSet有序,可以保证读取出来顺序不变 private final LinkedHashSet keys = new LinkedHashSet<>(); /** * 读取key集合 */ @Override public Set stringPropertyNames() { Set set = new LinkedHashSet<>(); for (Object key : keys) { set.add((String) key); } return set; } @Override public Set keySet() { return keys; } /** * 枚举可以直接进行遍历,但是和iterator一样,遍历过程中不能进行修改删除等操作 * 若要在遍历过程中进行修改擦除等操作,建议使用stringPropertyNames方法 */ @Override public synchronized Enumeration keys() { return Collections.enumeration(keys); } @Override public synchronized Object put(Object key, Object value) { keys.add(key); return super.put(key, value); } /** * 若要移除元素,要重写remove方法 */ @Override public Object remove(Object o) { keys.remove(o); return super.remove(o); } }