我需要使用<String, ArrayList<String>>将由几个不同线程访问的表单的HashMap .根据我的设法理解,ConcurrentHashMap是首选方法.但是,地图的值是否为ArrayList会有任何问题吗?我是否必须将值定义为同步ArrayList或类似的东西?
在java中,我试图检测表单的字符串:可选的下划线,大写字母,然后是包含两个参数的大括号.就是这样的事情MAX{1,2} FUNC{3,7} _POW{9,10}
我决定推迟处理这些参数,所以我使用的正则表达式是:
_?[A-Z]+//{.*//}
Run Code Online (Sandbox Code Playgroud)
但是在尝试将其编译为Pattern对象时遇到以下错误:
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 9
_?[A-Z]+//{.*//}
^
Run Code Online (Sandbox Code Playgroud)
谁知道问题是什么?
鉴于以下课程
class Creature {}
class Animal extends Creature {}
class Dog extends Animal {}
Run Code Online (Sandbox Code Playgroud)
以下列表
List<? super Animal> l1;
List<? extends Animal> l2;
Run Code Online (Sandbox Code Playgroud)
哪些命令会导致编译错误?
1) l1.add(new Dog())
2) l1.add(null)
3) Object a = l1.get(0)
4) l2.add(new Dog())
5) Creature c = l2.get(0))
Run Code Online (Sandbox Code Playgroud)
我认为这是四,因为? extends Animal不一定是超类型Dog,但我不完全确定.解释会有很大帮助:)