[英]Add or Update elements of an ArrayList based on another ArrayList
[英]Add random elements to ArrayList based on argument type?
抱歉,標題有點難以理解。 我正在嘗試做的是創建一個通用方法,該方法可以接收任何類型的ArrayList,並向其添加隨機生成的元素(屬於該類型)。 例如,如果我將Integer ArrayList傳遞給該方法,它將生成10個隨機Integer,並將它們添加到ArrayList中。 如果它是Long ArrayList,它將生成10個隨機Long值,依此類推。
是否有某種類別或接口可以自動知道需要生成哪種類型? Random類的問題在於,您必須手動調用諸如“ nextInt”之類的方法。 它們不是基於參數類型隱式的
這就是我的意思(無法使用通用的Random類):
public static <AnyType> void addRandElements (ArrayList<AnyType> arr){
arr.add(rand.nextInt());
return arr;
}
傳遞適當類型的Supplier
:
public static <AnyType> void addRandElements (ArrayList<AnyType> arr, Supplier<? extends AnyType> supplier){
// Surround with a loop to add more than one.
arr.add(supplier.get());
}
該供應商可以返回隨機元素:
addRandElements(intList, () -> rand.nextInt());
或固定元素:
addRandElements(strList, () -> "fixed string");
或其他類型的元素:
addRandElements(listOfLists, ArrayList::new);
但要點是,您需要指定如何生成元素,作為此通用方法的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.