gpt4 book ai didi

java - 将通用列表转换为通用数组

转载 作者:行者123 更新时间:2023-12-01 23:48:53 27 4
gpt4 key购买 nike

如何转换我的列表,items进入CountedItem[]

import java.util.LinkedList;
import java.util.Collections;
import java.util.Comparator;

public class CountedSet<E>
{
LinkedList<CountedItem<E>> items = new LinkedList<CountedItem<E>>();
private final Comparator<CountedItem<E>> comparator = new Comparator<CountedItem<E>>()
{
@Override
public int compare(final CountedItem<E> o1, final CountedItem<E> o2)
{
return Integer.valueOf(o1.getCount()).compareTo(Integer.valueOf(o2.getCount()));
}
};

public CountedSet()
{
}

public CountedItem<E> add(E item)
{
CountedItem<E> currentItem = null;
for (CountedItem<E> listItem : items)
if (listItem.getItem().equals(item))
{
currentItem = listItem;
break;
}

if (currentItem != null)
currentItem.increment();
else
{
currentItem = new CountedItem<E>(item);
items.add(currentItem);
}

return currentItem;
}

public CountedItem<E>[] getSortedArray()
{
Collections.sort(items, this.comparator);

CountedItem<E>[] array = items.toArraySomeHow();
return array;
}
}

我没有太多细节可以给你,除此之外我想在 public CountedItem<E>[] getSortedArray() 中做到这一点(最后一个方法)。另外,这样做会导致错误:

CountedItem<E>[] array = items.toArray(new CountedItem<E>[items.size()]);
// ERROR - Cannot create a generic array of CountedItem<E>. ^

最佳答案

您可以使用带有警告的 items.toArray(new CountedItem[items.size()]); 。但修改后您的代码并不干净且类型不安全。

您还可以添加@SuppressWarnings("unchecked")来消除警告。

你是否能忍受它取决于你:)

关于java - 将通用列表转换为通用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16573958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com