我需要复制一个给定日期100次(我不能通过参考传递).我想知道下面哪两个是更好的选择
newTime=Calendar.getInstance().setTime(originalDate);
Run Code Online (Sandbox Code Playgroud)
要么
newTime=originalDate.clone();
Run Code Online (Sandbox Code Playgroud)
表演在这里是主要的.
谢谢.
arm*_*ino 35
我会用
newTime= (Calendar) originalDate.clone();
Run Code Online (Sandbox Code Playgroud)
Chr*_*her 31
date.getTime()如果您不必进行日历计算,请考虑仅使用长值.[*]
private static final int N = 100000;
public static void main(final String[] args) throws Exception {
final Date date = new Date();
{
final long start = System.currentTimeMillis();
for (int i = 0; i < N; i ++) {
final Date date2 = (Date) date.clone();
}
final long end = System.currentTimeMillis();
System.out.println("Clone: " + (end - start) + " ms");
}
{
final long start = System.currentTimeMillis();
for (int i = 0; i < N; i ++) {
final Calendar cal = Calendar.getInstance();
cal.setTime(date);
final Date date2 = cal.getTime();
}
final long end = System.currentTimeMillis();
System.out.println("Caldendar.setTime: " + (end - start) + " ms");
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
Clone: 13 ms
Caldendar.setTime: 317 ms
Run Code Online (Sandbox Code Playgroud)
PS我不确定,如果你真的需要a Calendar或者a Date,那么随意修改测试......
(回应评论:为了提高测试准确性,您还可以单独运行测试,增加N的值,......)
| 归档时间: |
|
| 查看次数: |
42394 次 |
| 最近记录: |