Я должен разработать простой код, как это:Поставщик Java может оптимизировать процесс создания объекта?
public class TestSupplier {
public static void main(String[] args) {
// TODO Auto-generated method stub
TestSupplier ts1 = new TestSupplier();
List<String> lman = ts1.getList(new String[]{"Bob","Tom","Jack","Rob"});
List<String> lwom = ts1.getList(new String[]{"Barbara","Francesca","Jenny","Sim"});
List<String> ldog = ts1.getList(new String[]{"Ciuffy","Red","Fido"});
}
public List<String> getList (String[] n) {
List<String> list1 = new ArrayList<String>();
for (int i = 0; i < n.length ; i++) {
list1.add(n[i]);
}
return list1;
}
}
Каждый раз, когда программа называют метод «GetList» новый объект песни1 создается в памяти. Я пытаюсь найти лучший способ для оптимизации этого поведения, и я должен изменить код таким образом:
public class TestSupplier {
Supplier<List<String>> lsup = ArrayList<String>::new;
public static void main(String[] args) {
// TODO Auto-generated method stub
TestSupplier ts1 = new TestSupplier();
List<String> lman = ts1.getList(new String[]{"Bob","Tom","Jack","Rob"});
List<String> lwom = ts1.getList(new String[]{"Barbara","Francesca","Jenny","Sim"});
List<String> ldog = ts1.getList(new String[]{"Ciuffy","Red","Fido"});
}
public List<String> getList (String[] n) {
List<String> list1 = lsup.get();
for (int i = 0; i < n.length ; i++) {
list1.add(n[i]);
}
return list1;
}
}
У меня есть создать Поставщик в качестве переменного экземпляра и в методе «GetList» я просто называю его ПОЛУЧАЕТ метод для создания объекта.
Может ли это лучший подход для оптимизации кода?
Заранее спасибо
Чтобы сделать код более элегантным, я бы поставил параметр 'varargs' в' getList() '. Поставщик не приносит никаких преимуществ здесь, поскольку список создается каждый раз, когда вызывается 'getList()', используется ли поставщик или нет. – Kayaman