0
我要开发一个简单的代码是这样的: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”的方法,我只是叫他GET方法来创建对象。
难道这是优化代码的最佳方法吗?
在此先感谢
为了让代码更加优雅,我会在'getList()'中放置'varargs'参数。供应商在这里没有任何优势,因为每次调用getList()时都会创建一个列表,而不管供应商是否被使用。 – Kayaman