社区
Java SE
帖子详情
如下情况,怎么写代码的效率更高?
thinke365
2008-08-26 09:28:14
定义为:
Collection<E> c;
Iterator<E> iter = c.iterator();
现在要求对c中的元素进行遍历,下面两种,哪种效率更高?为什么?
1
while(iter.hasNext()) {
E temp = iter.next();
// some operations
}
2
E temp;
while(iter.hasNext()) {
temp = iter.next();
// some operations
}
...全文
290
33
打赏
收藏
如下情况,怎么写代码的效率更高?
定义为: Collection c; Iterator iter = c.iterator(); 现在要求对c中的元素进行遍历,下面两种,哪种效率更高?为什么? 1 while(iter.hasNext()) { E temp = iter.next(); // some operations } 2 E temp; while(iter.hasNext()) { temp = iter.next(); // some operations }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
33 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vamvin_55
2008-08-28
打赏
举报
回复
纯效率来说的话
下面的那个好点...
lawincy
2008-08-28
打赏
举报
回复
这种代码有比较意义没?还谈什么效率呀,第二个顶多在函数里多了4个字节的引用,第一个只是在for里面每次增加4个字节的引用(在没被GC之前)。要论效率,肯定是第二个要高点点,但是没意义,并且对栈的操作次数是一样的。
syzhwh
2008-08-27
打赏
举报
回复
第一个好,编程少写了temp;这几个字符:)
zhj92lxs
2008-08-27
打赏
举报
回复
[Quote=引用 6 楼 bao110908 的回复:]
我认为下面这种方式更好,同时限制了迭代器的局部变量作用域。
Java codefor(Iterator<E>i=c.iterator(); i.hasNext(); ) {
E temp=i.next();
}
[/Quote]
支持
dln1234
2008-08-27
打赏
举报
回复
其实差别都不大,看个人喜欢了。萝卜咸菜各有所爱
fengyuleidian3
2008-08-27
打赏
举报
回复
[Quote=引用 28 楼 lisl2003 的回复:]
引用 26 楼 hunterzhang0812 的回复:
给你们再做个测试,看看会得到什么结果
List l = new ArrayList();
POJO p;
for (int i=0; i <10; i++) {
p = new POJO;
l.add(p);
}
for (int i=0; i <10; i++) {
POJO p = new POJO;
l.add(p);
}
看看得到的这两个LIST内容有什么区别没有...
汗,这个例子举的……
[/Quote]
呵呵!
mengweilil
2008-08-27
打赏
举报
回复
我不知道pojo是啥。。。。。只好用Integer代替了,打出来是一样的东西
lisl2003
2008-08-27
打赏
举报
回复
[Quote=引用 26 楼 hunterzhang0812 的回复:]
给你们再做个测试,看看会得到什么结果
List l = new ArrayList();
POJO p;
for (int i=0; i <10; i++) {
p = new POJO;
l.add(p);
}
for (int i=0; i <10; i++) {
POJO p = new POJO;
l.add(p);
}
看看得到的这两个LIST内容有什么区别没有...
[/Quote]
汗,这个例子举的……
cwjieNo1
2008-08-27
打赏
举报
回复
我喜欢后一个·~
mengweilil
2008-08-27
打赏
举报
回复
ls的,pojo是啥东西?
wolfgang_l
2008-08-27
打赏
举报
回复
[Quote=引用 3 楼 hqbobo 的回复:]
后一个吧
少了一个定义..
[/Quote]
sxn19811006
2008-08-27
打赏
举报
回复
1
ZangXT
2008-08-27
打赏
举报
回复
[Quote=引用 16 楼 lgg201 的回复:]
不知道这个和基础数据类型复杂数据类型有没有关系?
比如E是一个自定义类型呢?
类型复杂度的提高+海量数据不知道哪个更优,没有环境,提出来大家看看.
[/Quote]
不会差别很大,因为E temp;语句不涉及到创建对象.具体操作都在循环里了
goosman
2008-08-27
打赏
举报
回复
不知道这个和基础数据类型复杂数据类型有没有关系?
比如E是一个自定义类型呢?
类型复杂度的提高+海量数据不知道哪个更优,没有环境,提出来大家看看.
haoxiongok
2008-08-27
打赏
举报
回复
[Quote=引用 6 楼 bao110908 的回复:]
我认为下面这种方式更好,同时限制了迭代器的局部变量作用域。
Java codefor(Iterator<E> i = c.iterator(); i.hasNext(); ) {
E temp = i.next();
}
[/Quote]
ZangXT
2008-08-27
打赏
举报
回复
[Quote=引用 2 楼 ZangXT 的回复:]
1的栈操作应该多一些,但不会带来很大的性能损失。
不过2的好处是让temp的作用域限制在循环之内,如果循环后用不到temp了,我会选择2这样的写法。
[/Quote]
晕,正好写反了,丢人了.一般都使用1.
hunterzhang0812
2008-08-27
打赏
举报
回复
给你们再做个测试,看看会得到什么结果
List l = new ArrayList();
POJO p;
for (int i=0; i<10; i++) {
p = new POJO;
l.add(p);
}
for (int i=0; i<10; i++) {
POJO p = new POJO;
l.add(p);
}
看看得到的这两个LIST内容有什么区别没有...
火龙果被占用了
2008-08-27
打赏
举报
回复
当然有差别了,写在里面在执行完成后,能加速对象的垃圾回收,
而写在外面由于局部变量作用范围关系,得在完全退出这个方法
时才会被回收掉。
如果代码很短的话基本上是没区别的,但是如何代码比较长,而
且计算比较复杂的话,我认为应该选用 2,毕竟写代码的原则应
该把局部变量的作用范围限制在尽可能小的范围内。
guoxyj
2008-08-27
打赏
举报
回复
差不多
liang8305
2008-08-27
打赏
举报
回复
完全没有必要抠到这么细
不过我喜欢1,因为temp每次都是新的
加载更多回复(12)
读
写
互斥锁与互斥锁的使用例子
一、读
写
互斥锁 package main import ( "fmt" "sync" "time" ) //读
写
互斥锁 var ( x = 0 wg sync.WaitGroup lock sync.Mutex rwlock sync.RWMutex ) func read() { defer wg.Done() rwlock.RLock() fmt.Println(x) time.Sleep(time.Millisecond) rwlock.RUn
自己
写
代码
vs 使用 UI 框架,前端开发
效率
到底谁
更高
?
你有没有遇到过这种
情况
:接到一个项目,是自己从头
写
页面组件,还是用现成的 UI 框架?很多人一开始想“练练手”,结果
写
着
写
着就卡在了按钮样式、布局兼容性、表单验证上,一拖再拖;而那些直接使用 UI 框架的人,却已经把功能模块搭好了。前端开发中,“造轮子”和“用轮子”的
效率
之争。一方认为自己
写
代码
更灵活、可控性强;另一方则觉得用成熟的 UI 框架能节省时间、减少 bug。那到底哪种方式更适合我们日常开发?今天我们就来掰扯清楚这个问题。
让你 vscode
写
代码
效率
更高
的技巧
vscode 是我们
写
代码
常用的编辑器,它的功能很多,但其实我们有很多功能都没用到,这篇文章就是想梳理下那些可能你不知道的但是却对
效率
提高很有帮助的一些技巧。包括:一键执行 npm scr...
取代 Mybatis Generator,这款
代码
生成神器配置更简单,开发
效率
更高
作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper。 Mybatis Generator 是 MyBatis 官方提供的一个
代码
生成工具,完全可以胜任这个工作,不过最近在开发“编程猫”开源网站的时候试用了一下 MyBatis-Plus 官方提供 AutoGenerator,发现配置更简单,开发
效率
更高
!于是就来给小伙伴们安利一波。 来个 GIF 感受一下 AutoGenerator 生成
代码
的快感吧
让 Python
代码
效率
更高
的 9 个编程技巧
在最近参加的一些技术会议上,我常常听到参会员在会中讨论技术选型时提到“Python太慢了”。然而,这种观点往往没有考虑到Python的众多优点。实际上,如果能够遵循Pythonic的编程风格,Python的运行速度可以非常快。这其中的关键在于掌握一些技术细节上的巧妙技巧。那些经验丰富的Python开发者通常掌握着许多既微妙又强大的方法来提升
代码
性能。这些技巧虽然看似简单,但实际上能够显著提高编程
效率
。接下来,我们将深入讨论九种可以改变你编
写
和优化Python
代码
方式的方法。
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章