- 浏览: 416775 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (161)
- 设计模式 (2)
- Debian (3)
- windows (9)
- ASP/.NET (1)
- 电脑常识 (5)
- BT5 (1)
- CentOS (7)
- Ubuntu (10)
- Linux (14)
- MySQL (17)
- excel (1)
- CMD (3)
- eclipse (11)
- thinkpad (1)
- Java (20)
- nokia (2)
- C++ (3)
- CSS (1)
- Struts2 (2)
- FreeMarker (2)
- JSLT (3)
- EL (2)
- 开源 (2)
- Tomcat (2)
- VMware (3)
- MyBatis (2)
- JS (3)
- SpringMVC (1)
- swfupload (1)
- Chrome (1)
- XAMPP (1)
- Oracle (7)
- beyond compare (1)
- maven (4)
- SVN (2)
- SQL (2)
- Git (4)
- Spring (1)
- VC (1)
- web界面 (2)
- Jquery (1)
- Hibernat (1)
- MSSQL (2)
- telnet (1)
- Thundbird (1)
- 办公 (1)
- Amazon EC2 (1)
- JPA (2)
- J2CMS (1)
- hadoop (8)
- redhat (2)
- 算法 (2)
- Hbase (1)
- hdfs (2)
- hadoop2 (1)
- yarn (1)
- redis (1)
- DBCP (1)
- Spark (1)
- mac (1)
- python (1)
- IntelliJ IDEA (1)
- hibernate (1)
- 数学 (1)
最新评论
-
java_feishen:
Eclipse 的 Window -> Preferen ...
Git Push错误“Error writing request body to server” -
851228082:
@Autowired private HttpServle ...
如何在SpringMVC中获取request对象 -
麦田里的阳光:
麦田里的阳光 写道是啊,这是一款很好用的软件,最新版本下载链接 ...
beyond compare -
麦田里的阳光:
是啊,这是一款很好用的软件,最新版本下载链接: http:// ...
beyond compare -
BigCat2013:
楼主上海哪里?我也是上海的。
Spark集群的安装与部署
原文地址:http://my.oschina.net/trydofor/blog/9974
1. 常用遍历 List 之方法
遍历 List 方法有三:
a) for (Iterator iterator = ls.iterator(); iterator.hasNext();)
b) for (int i = 0; i < ls.size(); i++)
c) for (Object object : ls) (java5+)
常用 List 实现有二:
a) java.util.ArrayList
b) java.util.LinkedList
效率如何?
2. 遍历方法之小误差验证
输出:
class java.util.ArrayList
iterator-nanotime :7199195
arraylike-nanotime:1920143
foreach-nanotime :3775320
class java.util.LinkedList
iterator-nanotime :5430188
arraylike-nanotime:9148595046
foreach-nanotime :1677620
iterator-nanotime :7199195
arraylike-nanotime:1920143
foreach-nanotime :3775320
class java.util.LinkedList
iterator-nanotime :5430188
arraylike-nanotime:9148595046
foreach-nanotime :1677620
方法:
private static void nanoLoop(List ls){
System.out.println(ls.getClass()); { // iterator long b = System.nanoTime(); for (Iterator iterator = ls.iterator(); iterator.hasNext();) { Object object = (Object) iterator.next(); } System.out.println("iterator-nanotime :"+(System.nanoTime()-b)); } { // array-like long b = System.nanoTime(); for (int i = 0; i < ls.size(); i++) { Object object = (Object) ls.get(i); } System.out.println("arraylike-nanotime:"+(System.nanoTime()-b)); } { // foreach long b = System.nanoTime(); for (Object object : ls) { Object s = (Object) object; } System.out.println("foreach-nanotime :"+(System.nanoTime()-b)); } } private static List initList(List ls,int count){ for (int i = 0; i < count; i++) { ls.add("aaaa"); } return ls; } public static void main(String[] args) { nanoLoop(initList(new ArrayList(),10*10000)); nanoLoop(initList(new LinkedList(),10*10000)); }3. 鲁莽结论
* 黑盒情况下:foreach > iterator > arraylike
* ArrayList :arraylike>foreach >iterator
* LinkedList:foreach >iterator >>>arraylike
4. 刨根问底
read the fk source code -_-
发表评论
-
运行Java命令的同时添加依赖jar包及参数
2015-05-04 09:33 2162方案一: java -classpath ... -
Java Reflection:Methods类方法
2014-07-07 17:32 816用Class 的getMethods 可以取的类的全部方法 ... -
-Djava.library.path
2013-12-18 15:23 14047一。如何使用native方法? java一般使用两个pa ... -
外部归并排序Java实现
2013-10-25 18:21 2283package mergesort; im ... -
父类、构造函数、成员对象的调用时机
2013-10-12 21:39 853在使用new创建对象时,主要完成四项工作:1 构造父类成员对 ... -
JPA工程中禁止用的关键字
2013-03-28 16:55 1224有些关键字是数据库的关键字,用了后会出现冲突,帮 ... -
将class文件打包成jar文件
2013-03-02 17:17 957一,命令 jar -cvf j2cms.jar ... -
Java中怎样判断一个字符串是否是数字
2012-11-03 18:19 3501在编程的时候,经常遇到要判断一个字符串中的字符是否是数字 ... -
mvn jetty:run出现OutOfMemoryError: PermGen space的处理
2012-10-09 15:10 4553处理方法: VM参数中添加如下配置: -server - ... -
Expected: class java.lang.Long, got class java.lang.Integer异常处理
2012-10-08 12:37 1390Config config = em.find(Config. ... -
hashMap初始化
2012-09-28 14:38 920Map<String, String> ha ... -
JAVA获取uuid
2012-08-31 11:10 1726import java.util.UUID; UUI ... -
java中文字串按拼音排序
2012-08-22 20:28 942import java.text.Collator; ... -
java 基本类型
2012-07-06 19:52 1132Java基本类型有8种:字符型:char 布尔型:boolea ... -
String 等号==比较 和 equals 比较
2012-05-30 16:47 1282JAVA 中数据类型分为两大类:一类是基本数据类型,另一类是引 ... -
invoke
2012-05-22 20:01 1097public static void gett ... -
如何在文本文件中添加字符串 java
2012-03-22 23:46 1504String htmlName="index. ... -
java读Map
2012-03-22 23:36 1046for(Map caMap: channelArticleM ... -
java泛型
2012-02-25 21:10 889http://baike.baidu.com/view/143 ...
相关推荐
在FreeMarker中,遍历`List<Map<String>>`是常见的操作,尤其在处理从后端传来的复杂数据结构时。这篇博客链接虽然无法直接访问,但从标题来看,我们可以推测其内容可能涉及如何在FreeMarker模板中遍历一个包含Map...
当我们需要遍历List并根据条件删除特定元素时,需要注意正确的方法,以避免在遍历过程中出现错误。以下将详细介绍如何在C#中遍历List并删除元素,包括正序和倒序遍历的技巧。 首先,我们来看一下错误的遍历方式。...
### c标签遍历集合嵌套的List集合 在Java Web开发中,经常需要处理复杂的集合数据结构,并将其展示到前端页面上。对于嵌套的集合(例如:List中包含List),使用`c`标签库(JSTL)进行遍历是一种常见的做法。本文将...
遍历List的时间复杂度与ArrayList相同,都是O(n),但由于类型安全,List通常被视为更优的选择。 最后,`DataSet`是.NET中用于存储和操作关系数据的复杂对象,它包含了多个DataTable。DataSet设计用于处理大量数据库...
为了遍历List,Java提供了一种迭代器(Iterator)的方式。ListIterator是Iterator的子接口,专为List设计,除了基本的`hasNext()`和`next()`方法外,还提供了`previous()`,`nextIndex()`和`previousIndex()`等方法,...
不同之处在于它首先将`chks.length`的值赋给一个变量`length`,这样在循环内部就不需要重复访问`length`属性,从而可能提高性能。 #### 3. 性能考量 在这段代码中,作者通过记录每次遍历前后的时间差来评估每种方法...
在Java编程中,遍历List集合是常见的操作,有多种方式可以实现这一功能。下面将详细探讨三种遍历List集合的方法及其性能差异。 1. 使用`Iterator`遍历: ```java List list = new ArrayList(); // 添加元素 for ...
接下来,我们讨论如何遍历List。List是一种有序的集合,`iterator`标签通过`status`属性可以提供迭代状态信息,如当前元素的索引等。假设我们有一个名为`myList`的List,我们可以这样遍历: ```jsp <p>Item #{...
本文将深入探讨关于CheckBoxList的绑定和遍历的实现方法及其相关知识点。 一、CheckBoxList绑定 1. 数据源绑定: CheckBoxList的数据源可以是数组、列表、数据库查询结果等,通过DataSource属性设置数据源,然后...
遍历List对象集合是日常开发中常见的操作,这里我们将详细介绍三种遍历List的方法,并探讨它们的性能特点和适用场景。 ### 第一种:迭代器(Iterator)遍历 ```java for (Iterator<A> it = list.iterator(); it....
火山PC文件遍历的解决方案主要关注的是在...总的来说,火山PC文件遍历的解决方案涉及到计算机系统底层的文件系统操作、编程技巧以及效率和安全性的考量。理解并掌握这些知识点对于开发涉及文件处理的软件至关重要。
在实际编程中,遍历List集合是常见的需求,用于访问和处理集合中的每个元素。本篇文章将详细介绍Java中List集合的三种遍历方式及其特点。 1. **迭代器(Iterator)遍历** 迭代器是Java集合框架提供的标准遍历接口...
在实际编程中,根据具体需求选择合适的遍历方法,可以极大地提高代码的可读性和效率。记得,遍历字典并不局限于一种方式,灵活运用各种技巧能让你的代码更加优雅。在实践过程中,不断探索和尝试,你会发现更多有趣和...
在IT领域,遍历文件夹并自动生成目录树是一项常用的任务,特别是在文件管理、数据整理以及自动化脚本编写中。这个过程通常涉及到操作系统...通过了解这些基础知识,你可以更有效地管理和操作文件系统,提高工作效率。
例如,`<c:forEach>`标签是用于遍历集合的,它是JSTL中最常用的标签之一。 **2. `<c:forEach>`标签** `<c:forEach>`标签用于遍历任何可迭代的数据源,如ArrayList、LinkedList、HashMap等。其基本语法如下: ```...
例如,通过使用CSS选择器来定位特定类型的控件,或者只遍历那些需要修改样式的元素,可以提高代码效率。 总结来说,“遍历页面控件换CSS”是一个在网页开发中调整样式的重要技术,它结合了遍历DOM元素和动态修改CSS...
在Java编程语言中,`Map`接口是一...总之,遍历`Map`是Java编程中常见的需求之一,掌握正确的遍历方法不仅可以提高代码的效率,还可以避免潜在的错误。希望本文的内容能帮助你更好地理解和使用Java中的`Map`遍历技巧。
ArrayList 是一种基于数组的 List 实现类,它提供了快速的随机访问能力,但是插入和删除元素时需要移动大量元素,效率较低。LinkedList 是一种基于链表的 List 实现类,它提供了快速的插入和删除能力,但是随机访问...
例如,使用STL库中的`vector`或`list`容器来表示邻接表,使用`queue`或`stack`容器来进行DFS和BFS的遍历。同时,为了跟踪已访问过的节点,可以创建一个布尔数组或利用`std::set`来存储已访问的顶点。 在实际应用中...
Java中提供了多种集合遍历方式,包括迭代器遍历、Map遍历、List遍历等。下面我们将逐一介绍这些遍历方式的实现原理和优缺点。 一、迭代器遍历 迭代器遍历是Java中最基本的集合遍历方式。迭代器是一个对象,它允许...