Java不安全操作
在编译一小段java代码时,我会注意到有不安全的操作。我基本上只是希望有一个概念,即如何改变我的数据结构,使其安全 概念:我需要根据输入字符串的长度将其组织到bucket中,长度可以是任意的(尽管小于80个字符) 守则:Java不安全操作,java,vector,maps,unsafe,Java,Vector,Maps,Unsafe,在编译一小段java代码时,我会注意到有不安全的操作。我基本上只是希望有一个概念,即如何改变我的数据结构,使其安全 概念:我需要根据输入字符串的长度将其组织到bucket中,长度可以是任意的(尽管小于80个字符) 守则: Map<Integer, List> buckets = new HashMap<Integer, List>(); if(!buckets.containsKey(length)) {
Map<Integer, List> buckets = new HashMap<Integer, List>();
if(!buckets.containsKey(length))
{
buckets.put(length,new Vector<wordValues>());
}
//Now add the temp to the bucket
buckets.get(length).add(new wordValues(temp));
Map bucket=newhashmap();
如果(!bucket.containsKey(长度))
{
bucket.put(长度,新向量());
}
//现在将温度添加到桶中
bucket.get(length.add(newwordvalues(temp));
然后我将字符串添加到与其大小对应的列表中
有什么更好的方法可以做到这一点呢?若要混合原始药和仿制药列表,请尝试:
Map<Integer, List<wordValues>> buckets = new HashMap<Integer, List<wordValues>>();
Map bucket=newhashmap();
另外,类名通常以大写开头,例如
WordValues
问题是您使用的是列表
,而不是参数化的列表
。
Oracle中广泛地介绍了泛型
HashMap
;相反,我只是利用新的菱形操作符键入了HashMap
看看这个答案:
为什么包含skey
和get
?
Map<Integer, List<WordValues>> buckets = new HashMap<>();
...
List<WordValues> values = buckets.get(length);
if (values == null) {
values = buckets.put(length, new ArrayList<WordValues>());
}
values.add(new WordValues(temp));
Collections.synchronizedList(new ArrayList<WordValues>())