Gra*_*mey 0 java arrays performance
假设我有对象类型A,B和C.我想将它们存储在一个数组中.一种方法是这样的:
A a = new A();
B b = new B();
C c = new C();
Object[] array = {a, b, c};
Run Code Online (Sandbox Code Playgroud)
从设计角度来看,这不太理想,因为您现在需要知道数组[0]是A类型,但与Ruby或Python等允许此类事物的语言不同.
也就是说,另一个选择是创建一个自定义类D来保存该信息:
private class D {
public A myA;
public B myB;
public C myC;
public D(A a, B b, C c) {
//...
}
}
D[] otherArray = new D[1];
otherArray[0] = new D(a, b, c);
Run Code Online (Sandbox Code Playgroud)
哪种方法更好?出于设计原因,我可以看到第二种方法的论点(尽管其他语言一直都在讨论这个问题).
从性能的角度来看,第一种方法的必要的向上/向下投影比重复创建新的D对象更昂贵,反之亦然?
Java是一种类型安全的OO语言.使用类和对象.所以你的第二个解决方案要好得多(除了我不明白为什么你需要一个1元素的D数组).
表现无关紧要.两者都可能同样快(对于第二种解决方案而言具有明显的优势),而且无论如何都不会出现性能问题.不要预先优化:它是所有邪恶的根源.
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |