我创建了一个匿名类,其中我声明了一些变量和方法.我的java老师告诉我要把这些私有化.我没有看到改变修饰符有什么不同,因为无论如何这些变量和方法对于匿名类是私有的,所以我更喜欢根本没有修饰符.谁是对的,什么更有意义?请参阅下面的示例代码,其中我选择"map"和"convert"的修饰符而不是将其设为私有.
Collections.sort(list, new Comparator<String>(){
public int compare(String a, String b){
return convert(a).compareTo(convert(b));
}
Map<String, String> map = new HashMap<String, String>();
String convert(String s) {
String u = map.get(s);
if (u == null)
map.put(s, u = s.toUpperCase());
return u;
}
});
Run Code Online (Sandbox Code Playgroud) 如果我有一个哈希映射并重复遍历这些对象,那么我是否保证每次调用的顺序都相同?例如,以下打印两行彼此不同:
Map<String,Integer> map = new HashMap<String,Integer>()
{{ put("a", 1); put("b", 2); put("c", 3); }};
System.out.println(map);
System.out.println(map);
Run Code Online (Sandbox Code Playgroud)
这是集合和集合的一般情况吗?如果是这样,如果你必须以相同的顺序在同一个集合上迭代两次(不管是什么顺序),最好的方法是什么?我想转换成一个列表.