Java 如何使数组元素成为ArrayList?

Java 如何使数组元素成为ArrayList?,java,Java,我有一个HashMap类,它将Object[]类型的变量“table”实例化为Object[cap],其中cap在测试中等于10。我在HashMap类中有以下put方法: public void put(K key, V value){ HashEntry<K, V> newEntry = new HashEntry<K, V>(key, value); location = Math.abs(key.hashCode()) % capacity;

我有一个
HashMap
类,它将
Object[]
类型的变量“table”实例化为
Object[cap]
,其中cap在测试中等于10。我在
HashMap
类中有以下put方法:

public void put(K key, V value){
    HashEntry<K, V> newEntry = new HashEntry<K, V>(key, value);
    location = Math.abs(key.hashCode()) % capacity;
    //System.out.println(location);

    if(table[location] == null){
        table[location] = new ArrayList<HashEntry<K, V>>();
        table[location] = newEntry;
        numItems++;
    }
    else {
        table[location] = newEntry;
    }
}
public void put(K键,V值){
HashEntry newEntry=新的HashEntry(键,值);
location=Math.abs(key.hashCode())%容量;
//系统输出打印项次(位置);
if(表[位置]==null){
table[location]=新的ArrayList();
表[位置]=新条目;
numItems++;
}
否则{
表[位置]=新条目;
}
}

为了使
ArrayList
工作,我应该使用
table[location].add(newEntry)
,而不是
table[location]=newEntry
。但是,如果我使用前者,我会得到消息“类型
对象
的方法
add(HashEntry)
未定义”。当我使用后者时,我当然无法获得正确的输出,因为没有一个“
bucket
”可以从中检索信息。与二维数组相比,我更喜欢使用
ArrayList
,因为我根本没有
2D数组!感谢您的帮助,因为我一整天都在做各种各样的尝试

将数组元素直接分配给ArrayList的一种方法是:

 String array[]={"Abc","Def"};
 List<String> list=Arrays.asList(array);
字符串数组[]={“Abc”,“Def”};
列表=数组。asList(数组);
第二种方法是通过for循环遍历数组元素,然后将它们指定给arrayList,如下所示:

for(int i=0;i<array.length'i++)
{
     list.add(arr[i]);
}
for(int i=0;i
if(表[位置]==null){
table[location]=新的ArrayList();
表[位置]=新条目;
numItems++;
}
否则{
表[位置]=新条目;
}
这是错误的,应该是:

if(table[location] == null){
    table[location] = new ArrayList<HashEntry<K, V>>();
}
table[location].add(newEntry);
if(表[位置]==null){
table[location]=新的ArrayList();
}
表[位置]。添加(新条目);

该表是对
ArrayList
的引用数组一旦找到所需的bucket(并在需要时初始化),您就要将新条目添加到
ArrayList

您在哪里/如何定义
table
?是否尝试将表声明为列表数组?如“List[]table;”Object[]table;然后在构造函数中,table=new Object[cap];List[]table会导致其他问题,但解决了.add问题。我当然明白你的意思,我已经更改了代码。谢谢你!但是,我仍然会遇到更困难的错误消息,“type对象的方法
add(HashEntry)
未定义。”
if(table[location] == null){
    table[location] = new ArrayList<HashEntry<K, V>>();
}
table[location].add(newEntry);