s:iterator各种遍历用法

合集下载

iterator的hasnext方法

iterator的hasnext方法

iterator的hasnext方法摘要:1.迭代器简介2.hasNext方法的作用3.实现原理4.应用场景5.示例代码正文:迭代器(Iterator)是Java集合框架中的一种重要组件,它用于遍历集合元素。

在迭代器中,有一个常用的方法——hasNext,该方法用于判断迭代器中是否还有下一个元素。

本文将详细介绍迭代器的hasNext方法,包括其实现原理和应用场景。

1.迭代器简介迭代器是一个实现了Iterator接口的类,它提供了一种安全且高效的方式來遍历集合。

迭代器内部维护了一个计数器,用于记录当前遍历到的元素位置。

在遍历过程中,可以通过调用迭代器的方法来获取下一个元素、判断是否还有下一个元素以及跳过某个元素等。

2.hasNext方法的作用hasNext方法用于判断迭代器中是否还有下一个元素。

如果迭代器中仍有元素,则返回true,否则返回false。

在实际应用中,可以使用hasNext方法来确保遍历过程的安全性,避免在遍历过程中意外地删除集合中的元素。

3.实现原理迭代器的实现原理主要包括以下几点:(1)内部维护一个计数器,记录当前遍历到的元素位置。

(2)当调用next方法获取下一个元素时,如果计数器为0,则表示已经遍历完所有元素,抛出NoSuchElementException异常。

(3)当调用hasNext方法判断是否有下一个元素时,如果计数器大于0,则返回true,否则返回false。

4.应用场景迭代器的hasNext方法在以下场景中具有重要应用:(1)遍历集合时,可以使用hasNext方法判断是否还有下一个元素,避免盲目遍历。

(2)在迭代过程中,可以先调用hasNext方法判断是否有下一个元素,再调用next方法获取元素,以确保遍历过程的安全性。

(3)在处理大量数据时,可以使用hasNext方法来控制遍历进度,避免一次性加载到内存中。

5.示例代码以下是一个使用迭代器遍历集合的示例:```javaimport java.util.ArrayList;import java.util.Iterator;import java.util.List;public class IteratorExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("A");list.add("B");list.add("C");Iterator<String> iterator = list.iterator();while (iterator.hasNext()) {String element = iterator.next();System.out.println(element);}}}```在这个示例中,我们创建了一个包含三个元素的ArrayList,并通过迭代器遍历集合。

iterator方法

iterator方法

iterator方法标题:追寻 iterator 的足迹引言:在编程世界中,我们经常会遇到需要处理集合元素的情况。

为了更高效地处理这些集合,我们需要使用到 iterator 这一神奇的工具。

那么,什么是 iterator 呢?它又如何帮助我们更好地操控集合呢?让我们一起来追寻 iterator 的足迹,揭开它的神秘面纱。

1. iterator 的定义与作用Iterator(迭代器)是一种用于遍历集合的接口,它提供了一种统一的访问集合元素的方法。

通过使用 iterator,我们可以按照特定的顺序逐个访问集合中的元素,而不需要了解集合的内部结构。

这样,我们就可以更加方便地对集合进行操作了。

2. iterator 的使用方法使用 iterator 非常简单。

我们只需要通过调用集合的 iterator 方法,就可以获取到一个 iterator 对象。

然后,我们就可以使用该对象的各种方法来遍历集合了。

不同的编程语言可能会有不同的iterator 实现方式,但基本的使用方法是相似的。

3. iterator 的遍历方式iterator 提供了多种遍历方式,以满足不同的需求。

最常见的是使用 while 循环结合 hasNext 和 next 方法来遍历集合。

通过判断hasNext 方法的返回值,我们可以确定是否还有下一个元素可供访问。

而 next 方法则可以返回当前位置的元素,并将 iterator 移动到下一个位置。

4. iterator 的优势与局限使用 iterator 遍历集合具有多个优势。

首先,iterator 可以将集合的内部结构与遍历过程解耦,使得代码更加清晰易读。

其次,iterator 可以在遍历过程中对集合进行修改,而不会引发异常。

然而,iterator 也存在一些局限性,比如无法逆向遍历集合、无法并发访问等。

在使用 iterator 时,我们需要根据具体情况选择合适的遍历方式。

5. iterator 的应用场景iterator 不仅仅用于遍历集合,它还可以应用于其他许多场景。

s:iterator 用法

s:iterator 用法

struts2的s:iterator 可以遍历数据栈里面的任何数组,集合等等以下几个简单的demo:s:iterator 标签有3个属性:value:被迭代的集合id :指定集合里面的元素的idstatus 迭代元素的索引1:jsp页面定义元素写法数组或list<s:iterator value="{'1','2','3','4','5'}" id='number'><s:property value='number'/>A</s:iterator>打印结果为: 1A2A3A4A5A2:索引的用法如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法int getCount()返回当前迭代了几个元素int getIndex()返回当前元素索引boolean isEven()当然的索引是否偶数boolean isFirst()当前是否第一个元素boolean isLast()boolean isOdd()当前元素索引是否奇数<s:iterator value="{'a','b','c'}" id='char' status='st'><s:if test="#st.Even">现在的索引是奇数为:<s:property value='#st.index'/></s:if>当前元素值:<s:property value='char'/></s:iterator>3:遍历mapvalue可以直接定义为:value="#{"1":"a","2":"b"}"每个元素以都好隔开。

iterator用法java

iterator用法java

iterator用法java迭代器(Iterator)是在Java编程语言中常用的一种设计模式,它可以用来遍历集合(Collection)中的元素。

在这篇文章中,我们将深入探讨迭代器的用法,并重点介绍如何使用迭代器来遍历数组(Array)。

1. 什么是迭代器?迭代器是一种对象,它可以让我们按顺序访问集合中的元素,而不需要知道底层数据结构的具体实现细节。

通过迭代器,我们可以循环遍历集合并执行相应的操作。

2. 迭代器的常见方法在Java中,所有实现了`Iterable`接口的集合类都可以使用迭代器进行遍历。

`Iterable`接口提供了一个`iterator()`方法,并返回一个实现了`Iterator`接口的对象。

常见的迭代器方法包括:- `hasNext()`:判断是否还有下一个元素;- `next()`:返回下一个元素,并将迭代器指针移到下一个位置;- `remove()`:删除当前元素(可选操作)。

3. 迭代器的使用示例下面我们以数组为例,演示迭代器的具体用法。

假设我们有一个整数数组`int[] array = {1, 2, 3, 4, 5};`,我们将通过迭代器来遍历该数组,并输出每个元素的值。

javaint[] array = {1, 2, 3, 4, 5};Iterator<Integer> iterator = Arrays.stream(array).iterator();while (iterator.hasNext()) {int element = iterator.next();System.out.println(element);}在上述代码中,我们使用了Java 8中的`Arrays.stream()`方法将数组转换成一个流,然后调用`iterator()`方法获取迭代器对象。

接下来,通过循环遍历迭代器并使用`next()`方法获取下一个元素的值,最后通过`System.out.println()`打印元素的值。

iterator的用法

iterator的用法

iterator的用法
Iterator是Java中一种用于遍历集合(Collection)的接口。

它提供了一个方法来迭代元素并访问集合中的每个对象。

Iterator对象可以在Collection中获得,并用于循环遍历元素,将其存储在集合中或删除它。

Iterator有三个主要的方法:hasNext()、next()和remove()。

hasNext()方法用于检查下一个元素是否存在,如果存在
则返回true,否则返回false。

next()方法用于返回迭代器的下一个元素。

在第一次调用next()方法之前必须调用hasNext()方法,以确保元素存在。

remove()方法用于从迭代器指向列表的最后一个元素列表中删除当前元素。

调用remove()方法之前必须调用next()方法。

Iterator还有一些其他方法,例如forEachRemaining()和forEach(),它们提供了更高效的方式来遍历集合。

但是,版
本较早的Java中的Iterator不支持并发修改,因此在使用Iterator来修改集合之前,必须使用synchronized关键字或使
用并发集合(如ConcurrentHashMap)来确保线程安全。

总之,Iterator是Java集合框架中一个非常常用的接口,通过使用Iterator,我们可以遍历集合并获取其中的元素,包
括对集合中元素的增加、删除操作。

在使用Iterator时需要注意线程安全的问题,以避免由于多线程操作集合而带来的问题。

struts2中iterator 标签的使用详解

struts2中iterator 标签的使用详解

struts2中s:iterator 标签的使用详解及OGNL 用法(2011-03-25 16:20:51)转载标签:杂谈简单的demo:s:iterator 标签有3个属性:value:被迭代的集合id :指定集合里面的元素的idstatus 迭代元素的索引1:jsp页面定义元素写法数组或list<s:iterator value="{'1','2','3','4','5'}" id='number'><s:property value='number'/>A</s:iterator>打印结果为: 1A2A3A4A5A2:索引的用法如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法int getCount()返回当前迭代了几个元素int getIndex()返回当前元素索引boolean isEven()当然的索引是否偶数boolean isFirst()当前是否第一个元素boolean isLast()boolean isOdd()当前元素索引是否奇数<s:iterator value="{'a','b','c'}" id='char' status='st'><s:if test="#st.Even">现在的索引是奇数为:<s:property value='#st.index'/></s:if>当前元素值:<s:property value='char'/></s:iterator>3:遍历mapvalue可以直接定义为:value="#{"1":"a","2":"b"}"每个元素以都好隔开。

迭代器(Iterator)遍历List、Set、Map

迭代器(Iterator)遍历List、Set、Map

迭代器(Iterator)遍历List、Set、Map⼤晚上的睡不着觉,还是起来写博客吧。

迭代器我主要是⽤来遍历List、Set、Map的,然⽽好久没⽤过,⼜突然忘记了,所以有写了⼀遍(妈的,我还就不信了,我写10遍看能不能忘记)。

迭代器也就是将集合的数据放到⼀个容器中并排成⼀排,iterator有⼀个游标,最初的时候,游标在第⼀个元素前⾯,调⽤Iterator.next()是将游标往后移⼀位,Iterator.hasNext()是判断游标后⾯还没有可以迭代的元素。

为什么⽤迭代器了,在《java编辑思想》这本书⾥说,是因为最初的时候你⽤for循环遍历List,之后⼈家⼜要你遍历Set,但是for循环⽆法遍历Set,因为Set是⽆序的,所以后⾯就统⼀⽤迭代器遍历集合了。

遍历List1 List<String> list = new ArrayList<String>();2 list.add("a");3 list.add("b");4 Iterator<String> iterator = list.iterator();5while(iterator.hasNext()){6 String next = iterator.next();7 System.out.println(next);8 }遍历Set,和List⼀样1 Set<String> set = new HashSet<String>();2 set.add("c");3 set.add("d");4 Iterator<String> iteratorSet = set.iterator();5while (iteratorSet.hasNext()){6 String next = iteratorSet.next();7 System.out.println(next);8 }遍历Map,Map是存放键值对的,与集合不⼀样,集合只能存放单⼀元素,所以我们先得将Map看成⼀个单⼀元素,放到Set集合中去,⽽JDk中Map有⼀个⽅法entrySet()就是将Map放到⼀个Set集合中去。

s:iterator各种遍历用法

s:iterator各种遍历用法

s:iterator各种遍历⽤法1.MapAction.javaimport java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.opensymphony.xwork2.ActionSupportimport com.model.Studentpublic class MapAction extends ActionSupport{private Map<String,String> map;private Map<String,Student> studentMap;private Map<String,String[]> arrayMap;private Map<String,List<Student>> listMap;public String testMap(){map=new HashMap<String,String>();map.put("1", "one");map.put("2", "two");studentMap=new HashMap<String,Student>();studentMap.put("student1",new Student(new Long(1),"20034140201","张三1","男",25));studentMap.put("student2",new Student(new Long(2),"20034140202","张三2","⼥",26));studentMap.put("student3",new Student(new Long(3),"20034140202","张三3","男",27));arrayMap=new HashMap<String,String[]>();arrayMap.put("arr1", new String[]{"1","2003401","leejie","male","20"});arrayMap.put("arr2", new String[]{"2","2003402","huanglie","male","25"});arrayMap.put("arr3", new String[]{"3","2003403","lixiaoning","male","21"});listMap=new HashMap<String,List<Student>>();List<Student> list1=new ArrayList<Student>();list1.add(new Student(new Long(1),"20034140201","张三1","男",25));list1.add(new Student(new Long(2),"20034140202","张三2","男",25));list1.add(new Student(new Long(3),"20034140203","张三3","男",25));listMap.put("class1", list1);List<Student> list2=new ArrayList<Student>();list2.add(new Student(new Long(1),"20034140301","李四1","男",20));list2.add(new Student(new Long(2),"20034140302","李四2","男",21));list2.add(new Student(new Long(3),"20034140303","李四3","男",22));list2.add(new Student(new Long(4),"20034140304","李四4","男",23));listMap.put("class2", list2);return SUCCESS;}public Map<String, String> getMap() {return map;}public void setMap(Map<String, String> map) {this.map = map;}public Map<String, Student> getStudentMap() {return studentMap;}public void setStudentMap(Map<String, Student> studentMap) {this.studentMap = studentMap;}public Map<String, String[]> getArrayMap() {return arrayMap;}public void setArrayMap(Map<String, String[]> arrayMap) {this.arrayMap = arrayMap;}public Map<String, List<Student>> getListMap() {return listMap;}public void setListMap(Map<String, List<Student>> listMap) { this.listMap = listMap;}}2.testMap.jsp<%@ page contentType="text/html;charset=UTF-8" %><%@ taglib prefix="s" uri="/struts-tags" %><html><head><title>struts2中的map遍历总结</title></head><body><b>1.map中的value为String字符串</b><br><s:iterator value="map" id="column"><s:property value="#column"/><br>key: <s:property value="key"/><br>value:<s:property value="value"/><br>******************************************<br></s:iterator><b>2.map中的value为Student对象</b><table border="1" width="50%" cellspacing="0" cellpadding="0"> <tr><td>key=value</td><td>ID</td><td>num</td><td>name</td><td>sex</td><td>age</td></tr><s:iterator value="studentMap" id="column"><tr><td><s:property value="#column"/></td><td><s:property value="value.id"/></td><td><s:property value="value.num"/></td><td><s:property value=""/></td><td><s:property value="value.sex"/></td><td><s:property value="value.age"/></td></tr></s:iterator></table><p><b>3.map中的value为String数组</b><table border="1" width="50%" cellspacing="0" cellpadding="0"> <tr><td>key=value</td><td>ID</td><td>num</td><td>name</td><td>sex</td><td>age</td></tr><s:iterator value="arrayMap" id="column"><tr><td><s:property value="#column"/></td><td><s:property value="value[0]"/></td><td><s:property value="value[1]"/></td><td><s:property value="value[2]"/></td><td><s:property value="value[3]"/></td><td><s:property value="value[4]"/></td></tr></s:iterator></table><p><b>4.map中的value为list集合</b><table border="1" width="50%" cellspacing="0" cellpadding="0"> <tr><td>class</td><td>num</td><td>name</td><td>sex</td><td>age</td></tr><1.<s:iterator value="listHashMap" id="listid"><s:iterator value="#listid.value" id="listidsub"><tr><td><s:property value="key"/></td><td><s:property value="id"/></td><td><s:property value="num"/></td><td><s:property value="name"/></td><td><s:property value="sex"/></td><td><s:property value="age"/></td></tr></s:iterator></s:iterator></table></body></html>4、普通属性public String execute(){username = "zhangsan";password = "123";}<s:property value="username"/><br><s:property value="password"/><br>5、⾃定义对象public String execute(){userInfo = new UserInfo();userInfo.setUsername("hhh");userInfo.setPassword("111");}<s:property value="ername"/><br><s:property value="userInfo.password"/><br> 6、List(普通属性)public String execute(){list = new ArrayList<String>();list.add("aaa");list.add("bbb");list.add("ccc");}<s:iterator value="list" var="var"><s:property value="var"/><br></s:iterator>或者:<s:iterator value="list"><s:property/><br></s:iterator>6、List(⾃定义对象属性)public String execute(){list = new ArrayList<UserInfo>();UserInfo userInfo = new UserInfo();userInfo.setUsername("u1");userInfo.setPassword("p1");userInfo.setRoleInfo(new RoleInfo("r1"));list.add(userInfo);userInfo = new UserInfo();userInfo.setUsername("u2");userInfo.setPassword("p2");userInfo.setRoleInfo(new RoleInfo("r2"));list.add(userInfo);}<s:iterator value="list" var="var"><s:property value="#ername"/><s:property value="#var.password"/><s:property value="#var.roleInfo.rolename"/><br> </s:iterator>或者:<s:iterator value="list"><s:property value="username"/><s:property value="password"/><s:property value="roleInfo.rolename"/><br></s:iterator>7、数组(普通属性)public String execute(){strs[0] = "as";strs[1] = "asd";}<s:iterator value="strs"><s:property/><br></s:iterator>或者:<s:iterator value="strs" var="var"><s:property value="var"/><br></s:iterator>8、数组(⾃定义对象属性)public String execute(){strs = new UserInfo[2];UserInfo userInfo = new UserInfo();userInfo.setUsername("u11");userInfo.setPassword("11");strs[0] = userInfo;userInfo = new UserInfo();userInfo.setUsername("u22");userInfo.setPassword("22");strs[1] = userInfo;}<s:iterator value="strs"><s:property value="username"/><s:property value="password"/><br></s:iterator>或者:<s:iterator value="strs" var="var"><s:property value="#ername"/><s:property value="#var.password"/><br></s:iterator>8、数组(⾃定义对象属性)public String execute(){strs = new UserInfo[2];UserInfo userInfo = new UserInfo();userInfo.setUsername("u11");userInfo.setPassword("11");userInfo.setRoleInfo(new RoleInfo("r11"));strs[0] = userInfo;userInfo = new UserInfo();userInfo.setUsername("u22");userInfo.setPassword("22");userInfo.setRoleInfo(new RoleInfo("r22"));strs[1] = userInfo;}<s:iterator value="strs" var="var"><s:property value="#ername"/><s:property value="#var.password"/><s:property value="#var.roleInfo.rolename"/><br> </s:iterator>或者:<s:iterator value="strs"><s:property value="username"/><s:property value="password"/><s:property value="roleInfo.rolename"/><br></s:iterator>8、Map(普通属性)public String execute(){map = new HashMap<String,String>();map.put("k1", "v1");map.put("k2", "v2");}<s:iterator value="map" var="var"><s:property value="#var.key"/><s:property value="#var.value"/><br></s:iterator>或者:<s:iterator value="map"><s:property value="key"/><s:property value="value"/><br></s:iterator>8、Map(⾃定义对象属性)public String execute(){map = new HashMap<String,UserInfo>();UserInfo userInfo = new UserInfo();userInfo.setUsername("u1");userInfo.setPassword("p1");userInfo.setRoleInfo(new RoleInfo("r1"));map.put("k1", userInfo);userInfo = new UserInfo();userInfo.setUsername("u2");userInfo.setPassword("p2");userInfo.setRoleInfo(new RoleInfo("r2"));map.put("k2", userInfo);}<s:iterator value="map" var="var"><s:property value="#var.key"/><s:property value="#ername"/><s:property value="#var.value.password"/><s:property value="#var.value.roleInfo.rolename"/><br></s:iterator>或者<s:iterator value="map"><s:property value="key"/><s:property value="ername"/><s:property value="value.password"/><s:property value="value.roleInfo.rolename"/><br></s:iterator>8、Map嵌套Map(⾃定义对象属性)public String execute(){map = new TreeMap<String,Map<String,UserInfo>>();Map<String,UserInfo> innerMap = new TreeMap<String,UserInfo>(); UserInfo userInfo = new UserInfo();userInfo.setUsername("u1");userInfo.setPassword("p1");userInfo.setRoleInfo(new RoleInfo("r1"));userInfo = new UserInfo();userInfo.setUsername("u11");userInfo.setPassword("p11");userInfo.setRoleInfo(new RoleInfo("r11"));innerMap.put("k1", userInfo);innerMap.put("k11", userInfo);map.put("key1", innerMap);//////////////////////////innerMap = new TreeMap<String,UserInfo>();userInfo = new UserInfo();userInfo.setUsername("u2");userInfo.setPassword("p2");userInfo.setRoleInfo(new RoleInfo("r2"));userInfo = new UserInfo();userInfo.setUsername("u22");userInfo.setPassword("p22");userInfo.setRoleInfo(new RoleInfo("r22"));innerMap.put("k2", userInfo);innerMap.put("k22", userInfo);map.put("key2", innerMap);}<s:iterator value="map" var="var"><s:iterator value="value"><s:property value="#var.key"/><s:property value="key"/><s:property value="ername"/><s:property value="value.password"/><s:property value="value.roleInfo.rolename"/><br></s:iterator></s:iterator>。

java中iterator的用法

java中iterator的用法

java中iterator的用法
一、iterator遍历:
Iterator是一个接口,常用于遍历集合类,尤其是java中的容器,List,Set,Map等。

Iterator接口声明了三个方法:hasNext,next和remove,分别用于查询当前位置是否还有元素,获取当前位置的元素,删除当前位置的元素,可以类比出for循环的三步,判断,获取,更新,可以用Iterator来实现上述几种遍历方式。

二、iterator的使用:
1. 初始化Iterator
初始化iterator时,需要使用collection对象的iterator()方法来获取该容器的iterator对象,此时iterator对象指向的是容器的第一个元素;
Iterator<String> it = collection.iterator();
2. 判断是否有下一个
使用iterator的hasNext()方法来判断是否有下一个,当返回true时,表明要获取的元素不为空;
if(it.hasNext()){
t String str = it.next();
}
3. 获取元素
使用iterator的next()方法来获取集合中当前指向的元素,并将指针指向下一元素;
4. 删除元素
使用iterator的remove()方法,可以将当前指向的元素从集合中删除,但是需要注意的是每次调用remove()方法前都需要使用next()方法来获取元素,然后再调用remove()方法,否则会抛出IllegalStateException。

c++中iterator用法

c++中iterator用法

c++中iterator用法详解在C++中,迭代器(Iterator)是一种用于遍历容器中元素的抽象概念。

迭代器提供了一种统一的方式来访问容器中的元素,而不需要暴露容器的内部实现细节。

不同类型的容器(如数组、链表、向量、映射等)都支持迭代器,因此你可以使用相同的代码来遍历它们。

以下是一些常见的迭代器用法详解:1. 迭代器的基本使用:```cpp#include <iostream>#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};// 使用迭代器遍历vectorfor (std::vector<int>::iterator it = numbers.begin(); it != numbers.end(); ++it) {std::cout << *it << " ";}return 0;}```在上面的例子中,`numbers.begin()`返回指向容器起始位置的迭代器,而`numbers.end()`返回指向容器末尾的下一个位置的迭代器。

使用迭代器进行循环遍历容器。

2. auto关键字简化迭代器类型:```cpp#include <iostream>#include <vector>int main() {std::vector<int> numbers = {1, 2, 3, 4, 5};// 使用auto关键字简化迭代器类型for (auto it = numbers.begin(); it != numbers.end(); ++it) {std::cout << *it << " ";}return 0;}```使用`auto`关键字可以简化迭代器类型的声明,使代码更为简洁。

iterator在c语言的用法

iterator在c语言的用法

iterator在c语言的用法在C语言中,iterator是一个非常重要的概念,它可以帮助我们更方便地处理数组、列表等数据结构中的元素。

通过iterator,我们可以遍历数据结构中的所有元素,而不需要手动编写循环语句。

在本篇文章中,我们将介绍iterator在C语言中的用法。

一、定义iterator在C语言中,iterator通常是一个结构体类型,它包含两个成员:一个是用来存储当前元素的变量,另一个是指向下一个元素的指针。

常见的iterator定义方式如下:```ctypedefstruct{ElementTypecurrent;ElementType*next;}Iterator;```其中,`ElementType`是数据结构中的元素类型,`current`用于存储当前元素的值,`next`指向下一个元素。

二、使用iterator使用iterator时,我们需要先创建iterator对象,并将其初始化为指向数据结构中的第一个元素。

然后,我们可以使用迭代器对象遍历数据结构中的所有元素。

以下是一个简单的示例:```c#include<stdio.h>#include<stdlib.h>typedefstruct{intdata[100];}MyArray;IteratorcreateIterator(MyArray*array){Iteratoriter={array->data[0],&array->data[1];};returniter;}voidprintArrayElements(MyArray*array,Iteratoriter){for(;iter.current!=-1;iter.next){printf("%d",array->data[iter.current]);iter.current=iter.next;}}intmain(){MyArrayarray={{1,2,3,4,5}};Iteratoriter=createIterator(&array);printArrayElements(&array,iter);return0;}```在上面的示例中,我们首先定义了一个`MyArray`结构体类型,它包含一个大小为100的整数数组。

Iterator遍历(遍历集合)

Iterator遍历(遍历集合)

Iterator遍历(遍历集合)迭代器(Iterator) 迭代器是⼀种设计模式,它是⼀个对象,它可以遍历并选择序列中的对象,⽽开发⼈员不需要了解该序列的底层结构。

迭代器通常被称为“轻量级”对象,因为创建它的代价⼩。

Java中的Iterator功能⽐较简单,并且只能单向移动: (1) 使⽤⽅法iterator()要求容器返回⼀个Iterator。

第⼀次调⽤Iterator的next()⽅法时,它返回序列的第⼀个元素。

注意:iterator()⽅法是ng.Iterable接⼝,被Collection继承。

(2) 使⽤next()获得序列中的下⼀个元素。

(3) 使⽤hasNext()检查序列中是否还有元素。

(4) 使⽤remove()将迭代器新返回的元素删除。

Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个⽅向遍历List,也可以从List中插⼊和删除元素。

迭代器应⽤:list l = new ArrayList();l.add("aa");l.add("bb");l.add("cc");for (Iterator iter = l.iterator(); iter.hasNext();) {String str = (String)iter.next();System.out.println(str);}/*迭代器⽤于while循环Iterator iter = l.iterator();while(iter.hasNext()){String str = (String) iter.next();System.out.println(str);}*/========================================================================使⽤Collection类的Iterator,可以⽅便的遍历Vector, ArrayList, LinkedList等集合元素,避免通过get()⽅法遍历时,针对每⼀种对象单独进⾏编码。

迭代器Iterator、for循环遍历、泛型

迭代器Iterator、for循环遍历、泛型

迭代器Iterator、for循环遍历、泛型java.util.Collection接⼝是集合的最顶层的接⼝,定义了集合共性的⽅法接⼝⽆法直接创建对象,使⽤多态的⽅式创建对象Collection<集合中的数据类型(泛型)> coll = new ArrayList<集合中的数据类型(泛型)>();迭代器集合中存储数据的⽅式(数据类型)不⼀样,取出集合中元素的⽅式也不同,java给我们提供了⼀种公共的取出元素的⽅式,叫迭代器描述迭代器的接⼝:java.util.Iterator接⼝中的抽象⽅法:boolean hasNext() 如果仍有元素可以迭代,则返回 true。

判断集合中还有没有元素,有返回true,没有返回falseE next() 返回迭代的下⼀个元素。

取出集合中的下⼀个元素迭代器是⼀个接⼝,需要找到迭代器的实现类,迭代器的实现类是每个集合的内部类在Collection接⼝中有⼀个⽅法: iterator⽅法返回的就是迭代器Iterator<E> iterator() 返回在此 collection 的元素上进⾏迭代的迭代器。

ArrayList集合实现了Collection接⼝,重写iterator⽅法,⽅法的返回值就是迭代器的实现类对象注意:我们只需要知道iterator⽅法返回的⽽是迭代器的实现类就⾏了,不需要关注返回的是哪个实现类对象,这种变成⽅式叫做⾯向接⼝编程迭代器的使⽤步骤:1.创建集合对象,往集合中添加元素2.使⽤集合中的⽅法iterator获取迭代器的实现类对象,使⽤Iterator接⼝接收(多态)3.使⽤iterator中的⽅法hasNext和next⽅法进⾏迭代,取出集合中的元素1public static void main(String[] args) {2//1.创建集合对象,往集合中添加元素3//Collection<String> coll = new ArrayList<String>();4 Collection<String> coll = new HashSet<String>();5 coll.add("姚明");6 coll.add("乔丹");7 coll.add("詹姆斯");8 coll.add("科⽐");9 coll.add("艾弗森");10//2.使⽤集合中的⽅法iterator获取迭代器的实现类对象,使⽤Iterator接⼝接收(多态)11//集合中的数据类型是什么,迭代器的数据类型就是什么,跟着集合⾛12 Iterator<String> it = coll.iterator();13//3.使⽤iterator中的⽅法hasNext和next⽅法进⾏迭代,取出集合中的元素14//boolean hasNext() 如果仍有元素可以迭代,则返回 true。

Iterator主要有三个方法:hasNext()、next()、remove()详解

Iterator主要有三个方法:hasNext()、next()、remove()详解

Iterator主要有三个⽅法:hasNext()、next()、remove()详解⼀、Iterator的API关于Iterator主要有三个⽅法:hasNext()、next()、remove()hasNext:没有指针下移操作,只是判断是否存在下⼀个元素next:指针下移,返回该指针所指向的元素remove:删除当前指针所指向的元素,⼀般和next⽅法⼀起⽤,这时候的作⽤就是删除next⽅法返回的元素⼆、迭代器原理![这⾥写图⽚描述](///20160114111128221)1、当创建完成指向某个集合或者容器的Iterator对象是,这是的指针其实指向的是第⼀个元素的上⽅,即指向⼀个空2、当调⽤hasNext⽅法的时候,只是判断下⼀个元素的有⽆,并不移动指针3、当调⽤next⽅法的时候,向下移动指针,并且返回指针指向的元素,如果指针指向的内存中没有元素,会报异常。

4、remove⽅法删除的元素是指针指向的元素。

如果当前指针指向的内存中没有元素,那么会抛出异常。

三、迭代器的⽤途迭代器⼀般会⽤在遍历集合上⾯。

如:枚举⼯号Map map = new HashMap();map = new HashMap();map.put("1155669", "Tom");map.put("1155689", "Jane");map.put("1165669", "Kevin");map.put("1155660", "Gavin");Set keySet = map.keySet();Iterator iterator = keySet.iterator();while (iterator.hasNext()) {String key = (String) iterator.next();System.out.println(key);}。

sturuts标签遍历list的4种常见方法

sturuts标签遍历list的4种常见方法

sturuts标签遍历list的4种常见⽅法【摘要】本⽂主要介绍及演⽰了Struts迭代器(iterator)遍历List常⽤的4种例⼦,基于MyEclipse开发环境,重点关注前后端代码的实现,给出后端java代码、前段struts标签代码,主要有如下4个例⼦:1. 遍历List<String>2. 遍历List<List<String>>3. 遍历UserEntity4. 遍历List<UserEntity>图1:遍历Listd的4个例⼦运⾏结果关键词:Struts标签,iterator迭代器,List<String>,List<List<String>>1、遍历List<String>(1)后台TestAction.java 部分代码:1 // TODO 给list赋值2 if (list==null) {3 list=new ArrayList<String>();4 list.add("刘备");5 list.add("关⽻");6 list.add("张飞");7 list.add("赵云");8 }TODO 给list赋值(2)前台jsp+s标签部分源代码:1 <%--List<String>遍历--%>2 <table width="242" height="256" border="1" cellpadding="1"3 cellspacing="1">4 <caption>5 List&ltString&gt遍历6 </caption>7 <tr>8 <%--9 说明:<s:iterator id="别名" value="后台List变量名">10 <s:if test="#别名!=null">11 --%>12 <s:iterator id="li" value="list">13 <td>14 <s:if test="#li!=null">15 <s:property />16 </s:if>17 </td>18 </s:iterator>19 </tr>20 </table>List遍历2、遍历List<List<String>>(1)后台TestAction.java 部分代码:1 // TODO 给listList赋值(⼆维列表List)2 if (listList==null) {3 listList=new ArrayList<List<String>>();4 List<String> li=new ArrayList<String>();5 li.add("姓名");6 li.add("势⼒");7 li.add("职务");8 listList.add(li);9 /*List为引⽤类型(以地址⽅式保存⼀维List对象),10 添加不同List到⼆维列表需再实例化 */11 li=new ArrayList<String>();12 li.add("刘备");13 li.add("蜀");14 li.add("⽼⼤");15 listList.add(li);16 li=new ArrayList<String>();17 li.add("关⽻");18 li.add("蜀");19 li.add("⽼2");20 listList.add(li);21 li=new ArrayList<String>();22 li.add("张飞");23 li.add("蜀");24 li.add("⽼3");25 listList.add(li);26 li=new ArrayList<String>();27 li.add("赵云");28 li.add("蜀");29 li.add("⼤将");30 listList.add(li);TODO 给listList赋值(⼆维列表List)(2)前台jsp+s标签部分源代码:1 <%--List<List<String>>遍历--%>2 <table width="242" height="256" border="1" cellpadding="1"3 cellspacing="1">4 <caption>5 List&ltList&ltString&gt&gt遍历如下:6 </caption>7 <s:iterator value="#request.listList" status="st">8 <tr>9 <s:iterator value="#request.listList.get(#st.index)">10 <td valign="middle" align="center">11 <s:property />12 </td>13 </s:iterator>14 </tr>15 </s:iterator>16 </table>3、遍历UserEntity(1)后台TestAction.java 部分代码:1 // TODO 给UserEntity赋值2 if (userEntity==null) {3 userEntity=new UserEntity("诸葛亮","男",37);4 }TODO 给UserEntity赋值(2)前台jsp+s标签部分源代码:1 <%--UserEntity遍历如下:--%>2 <table width="242" height="256" border="1" cellpadding="1"3 cellspacing="1">4 <caption>5 UserEntity遍历如下:6 </caption>7 <tr>8 <%--<td><s:property value="#变量名.属性名" /></td>--%>9 <td>10 <s:property value="" />11 </td>12 <td>13 <s:property value="userEntity.sex" />14 </td>15 <td>16 <s:property value="userEntity.age" />17 </td>18 </tr>19 </table>View Code4、遍历List<UserEntity>(1)后台TestAction.java 部分代码:1 // TODO 给List<UserEntity>赋值2 if (users==null) {3 users=new ArrayList<UserEntity> ();4 UserEntity user=new UserEntity("张飞","男",18);5 users.add(user);6 user=new UserEntity("李斯","男",19);7 users.add(user);8 user=new UserEntity("王武","男",20);9 users.add(user);10 user=new UserEntity("⼩乔","⼥",21);11 users.add(user);12 }View Code(2)前台jsp+s标签部分源代码:1 <%-- List<UserEntity>遍历如下:--%>2 <table width="242" height="256" border="1" cellpadding="1"3 cellspacing="1">4 <caption>5 List&ltUserEntity&gt遍历如下:6 </caption>7 <tr>8 <th>9 姓名10 </th>11 <th>12 性别13 </th>14 <th>15 年龄16 </th>17 </tr>18 <s:iterator id="u" value="users">19 <%--20 <s:iterator id="別名" value="要遍历的集合">21 users:对应后台Action类的List<UserEntity> users;22 --%>23 <tr>24 <%--<td><s:property value="#別名.实体类属性名" /></td>--%>25 <td>26 <s:property value="#" />27 </td>28 <td>29 <s:property value="#u.sex" />30 </td>31 <td>32 <s:property value="#u.age" />33 </td>34 </tr>35 </s:iterator>36 </table>View Code5、⽤法⽐较它们遍历显⽰效果也类似,它们也有以下区别:List<List<String>>由于列表没有属性需要借助迭代器的属性status="st",如:<s:iterator value="#request.listList" status="st"><tr><s:iterator value="#request.listList.get(#st.index)"><td valign="middle" align="center"><s:property /></td></s:iterator></tr></s:iterator>List<UserEntity>则简单多,借⽤迭代器iterator的id、value属性,再⽤<s:property value="#別名.实体类属性名" />获取如:<s:iterator id="u" value="users"><tr><td><s:property value="#" /></td><td><s:property value="#u.sex" /></td><td><s:property value="#u.age" /></td></tr></s:iterator>遍历⽅法各有长短,若不是多表联接查询、显⽰表格的列数已经固定,⼀般⽤实体类(UserEntity)迭代的⽅式。

iterator的用法

iterator的用法

iterator的用法Iterator 是一种用于遍历容器中元素的迭代器,它提供了访问容器中元素的方法,可以在容器中遍历元素并且支持快速、高效地查找和访问容器中的元素。

在 C++ STL(标准模板库)中,Iterator 是一个非常重要的概念,许多容器(如vector、map、set等)都提供了Iterator。

Iterator 有几种类型,最基本的有 input_iterator、output_iterator、forward_iterator、bidirectional_iterator 和random_access_iterator。

不同类型的 Iterator 对象可以用于不同的容器和算法操作。

C++ STL 中的算法和容器都是基于 Iterator 设计的。

这意味着,通过使用 Iterator,我们可以非常简洁、高效地处理容器中的元素。

例如,使用 Iterator 对象就可以方便地实现 sort、search、copy 等常见的算法操作。

Iterator 包括以下重要操作:1.++ 和 -- 操作:Iterator 对象支持 ++ 和 -- 操作,这意味着我们可以在容器中向前或向后遍历元素。

例如,我们可以使用++ 操作将一个 Iterator 对象指向容器中的下一个元素。

这些操作是 Iterator 的基本操作,Iterator 对象必须支持它们。

2.解引用操作:Iterator 对象提供 * 操作符,这使得我们可以获取当前 Iterator 指向的元素的值。

例如,可以使用 * 操作符获取 vector 中某个元素的值。

3.比较操作:Iterator 对象支持 ==、!=、<、> 等比较操作符,这些操作符使我们可以比较两个 Iterator 对象指向的元素的大小关系。

例如,我们可以使用 < 操作符比较两个 Iterator 对象指向的元素的大小。

在使用 Iterator 时,我们需要注意以下事项:1. Iterator 对象必须指向容器中的有效元素。

js iterator用法

js iterator用法

js iterator用法摘要:1.简介2.JavaScript 中的Iterator 接口3.Iterator 的基本用法4.Iterator 的next 方法5.Iterator 的hasNext 方法6.使用Iterator 遍历集合7.总结正文:Iterator 是JavaScript 中一个用于遍历集合的接口。

通过Iterator 接口,我们可以实现对集合元素的一一访问,这在某些场景下非常有用。

本篇文章将详细介绍Iterator 的用法。

首先,我们需要了解Iterator 接口的基本用法。

Iterator 接口只有一个next 方法,该方法返回一个包含两个元素的数组,第一个元素是当前遍历到的元素,第二个元素是Iterator 对象本身。

此外,Iterator 接口还有一个hasNext 方法,用于判断是否还有下一个元素可以遍历。

Iterator 的next 方法是Iterator 接口的主要方法,它返回一个包含当前元素和Iterator 对象的数组。

我们可以通过返回的数组来获取当前遍历到的元素,并判断是否还有下一个元素。

当遍历到最后一个元素时,next 方法将返回一个空数组。

与next 方法相对应的是hasNext 方法,该方法返回一个布尔值,表示是否还有下一个元素可以遍历。

当hasNext 方法返回true 时,说明还有元素可以遍历;当hasNext 方法返回false 时,说明已经遍历到最后一个元素。

在实际应用中,我们可以使用Iterator 接口来遍历各种集合,如数组、字符串、Map、Set 等。

以数组为例,我们可以通过以下步骤使用Iterator 遍历数组:1.创建一个数组并调用其values 方法,该方法返回一个Iterator 对象。

2.使用Iterator 对象的next 方法获取当前遍历到的元素,并判断是否还有下一个元素。

3.当next 方法返回的数组不为空时,我们可以对当前元素进行处理,如打印、修改等。

java数组遍历:Iterator

java数组遍历:Iterator
(1)Iterator:
Java提供一个专门的迭代器<Interface>Iterator,我们可以对某个序列实现该interface,来提供标准的Java迭代器;Iterator接口实现后的功能是"使用"一个迭代器;
以下是用Iterator的简单例子:
1迭代器是一种模式它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离即我们无需关心该序列的底层结构是什么样子的
java数组遍历:Iterator
1、迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的;只要拿到这个对象,使用迭代器就可以遍历这个对象的内部;

iterator的使用

iterator的使用

iterator的使用摘要:1.Iterator 的概念和作用2.Iterator 的常见操作3.Iterator 在Python 中的应用实例4.Iterator 的优缺点分析5.使用Iterator 的注意事项正文:Iterator 是Python 中一个非常实用的数据结构,它主要用于遍历容器数据类型(如列表、元组等)。

Iterator 提供了一种高效的方式来获取容器中的元素,同时也可以避免在遍历过程中修改容器数据。

本文将详细介绍Iterator 的概念、常见操作以及在Python 中的应用实例,并分析其优缺点和注意事项。

1.Iterator 的概念和作用Iterator 是一种实现了迭代器协议的对象,该对象包含一个指针(或称为游标)和一组方法。

通过调用Iterator 的方法,我们可以获取容器中的元素,同时也可以在遍历过程中对容器进行修改。

Iterator 的主要作用是提供一种高效、安全的方式来遍历容器数据。

2.Iterator 的常见操作Iterator 提供了以下几个常见操作:- iter():返回一个Iterator 对象。

- next():返回容器中的下一个元素。

如果容器为空,则抛出StopIteration 异常。

- hasNext():检查容器中是否还有下一个元素。

返回True 或False。

3.Iterator 在Python 中的应用实例以下是一个使用Iterator 遍历列表的实例:```python# 定义一个列表my_list = [1, 2, 3, 4, 5]# 创建一个Iterator 对象iterator = iter(my_list)# 使用next() 方法获取列表中的元素print(next(iterator)) # 输出:1# 使用hasNext() 方法检查是否还有下一个元素print(hasNext(iterator)) # 输出:True# 使用next() 方法获取列表中的下一个元素print(next(iterator)) # 输出:2# 使用hasNext() 方法检查是否还有下一个元素print(hasNext(iterator)) # 输出:True```4.Iterator 的优缺点分析Iterator 的优点:- 节省内存:Iterator 使用游标来获取容器中的元素,而不是将整个容器复制到一个新的对象中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.MapAction.javaimport java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.opensymphony.xwork2.ActionSupport import com.model.Studentpublic class MapAction extends ActionSupport {private Map<String,String> map;private Map<String,Student> studentMap;private Map<String,String[]> arrayMap;private Map<String,List<Student>> listMap; public String testMap(){map=new HashMap<String,String>();map.put("1", "one");map.put("2", "two");studentMap=new HashMap<String,Student>();studentMap.put("student1",new Student(new Long(1),"20034140201","张三1","男",25));studentMap.put("student2",new Student(new Long(2),"20034140202","张三2","女",26));studentMap.put("student3",new Student(new Long(3),"20034140202","张三3","男",27));arrayMap=new HashMap<String,String[]>();arrayMap.put("arr1", new String[]{"1","2003401","leejie","male","20"});arrayMap.put("arr2", new String[]{"2","2003402","huanglie","male","25"});arrayMap.put("arr3", new String[]{"3","2003403","lixiaoning","male","21"});listMap=new HashMap<String,List<Student>>();List<Student> list1=new ArrayList<Student>();list1.add(new Student(new Long(1),"20034140201","张三1","男",25));list1.add(new Student(new Long(2),"20034140202","张三2","男",25));list1.add(new Student(new Long(3),"20034140203","张三3","男",25));listMap.put("class1", list1);List<Student> list2=new ArrayList<Student>();list2.add(new Student(new Long(1),"20034140301","李四1","男",20));list2.add(new Student(new Long(2),"20034140302","李四2","男",21));list2.add(new Student(new Long(3),"20034140303","李四3","男",22));list2.add(new Student(new Long(4),"20034140304","李四4","男",23));listMap.put("class2", list2);return SUCCESS;}public Map<String, String> getMap() {return map;}public void setMap(Map<String, String> map) {this.map = map;}public Map<String, Student> getStudentMap() {return studentMap;}public void setStudentMap(Map<String, Student> studentMap) { this.studentMap = studentMap;}public Map<String, String[]> getArrayMap() {return arrayMap;}public void setArrayMap(Map<String, String[]> arrayMap) { this.arrayMap = arrayMap;}public Map<String, List<Student>> getListMap() {return listMap;}public void setListMap(Map<String, List<Student>> listMap) { this.listMap = listMap;}}2.testMap.jsp<%@ page contentType="text/html;charset=UTF-8" %><%@ taglib prefix="s" uri="/struts-tags" %><html><head><title>struts2中的map遍历总结</title></head><body><b>1.map中的value为String字符串</b><br><s:iterator value="map" id="column"><s:property value="#column"/><br>key: <s:property value="key"/><br>value:<s:property value="value"/><br>******************************************<br></s:iterator><b>2.map中的value为Student对象</b><table border="1" width="50%" cellspacing="0" cellpadding="0"> <tr><td>key=value</td><td>ID</td><td>num</td><td>name</td><td>sex</td><td>age</td></tr><s:iterator value="studentMap" id="column"><tr><td><s:property value="#column"/></td><td><s:property value="value.id"/></td><td><s:property value="value.num"/></td><td><s:property value=""/></td><td><s:property value="value.sex"/></td><td><s:property value="value.age"/></td></tr></s:iterator></table><p><b>3.map中的value为String数组</b><table border="1" width="50%" cellspacing="0" cellpadding="0"> <tr><td>key=value</td><td>ID</td><td>num</td><td>name</td><td>sex</td><td>age</td></tr><s:iterator value="arrayMap" id="column"><tr><td><s:property value="#column"/></td><td><s:property value="value[0]"/></td><td><s:property value="value[1]"/></td><td><s:property value="value[2]"/></td><td><s:property value="value[3]"/></td><td><s:property value="value[4]"/></td></tr></s:iterator></table><p><b>4.map中的value为list集合</b><table border="1" width="50%" cellspacing="0" cellpadding="0"> <tr><td>class</td><td>ID</td><td>num</td><td>name</td><td>sex</td><td>age</td></tr><1.<s:iterator value="listHashMap" id="listid"> <s:iterator value="#listid.value" id="listidsub"> <tr><td><s:property value="key"/></td><td><s:property value="id"/></td><td><s:property value="num"/></td><td><s:property value="name"/></td><td><s:property value="sex"/></td><td><s:property value="age"/></td></tr></s:iterator></s:iterator></table></body></html>4、普通属性public String execute(){username = "zhangsan";password = "123";}<s:property value="username"/><br><s:property value="password"/><br>5、自定义对象public String execute(){userInfo = new UserInfo();userInfo.setUsername("hhh");userInfo.setPassword("111");}<s:property value="ername"/><br> <s:property value="userInfo.password"/><br>6、List(普通属性)public String execute(){list = new ArrayList<String>();list.add("aaa");list.add("bbb");list.add("ccc");}<s:iterator value="list" var="var"><s:property value="var"/><br></s:iterator>或者:<s:iterator value="list"><s:property/><br></s:iterator>6、List(自定义对象属性)public String execute(){list = new ArrayList<UserInfo>();UserInfo userInfo = new UserInfo();userInfo.setUsername("u1");userInfo.setPassword("p1");userInfo.setRoleInfo(new RoleInfo("r1")); list.add(userInfo);userInfo = new UserInfo();userInfo.setUsername("u2");userInfo.setPassword("p2");userInfo.setRoleInfo(new RoleInfo("r2"));list.add(userInfo);}<s:iterator value="list" var="var"><s:property value="#ername"/><s:property value="#var.password"/><s:property value="#var.roleInfo.rolename"/><br> </s:iterator>或者:<s:iterator value="list"><s:property value="username"/><s:property value="password"/><s:property value="roleInfo.rolename"/><br></s:iterator>7、数组(普通属性)public String execute(){strs = new String[2];strs[0] = "as";strs[1] = "asd";}<s:iterator value="strs"><s:property/><br></s:iterator>或者:<s:iterator value="strs" var="var"> <s:property value="var"/><br></s:iterator>8、数组(自定义对象属性)public String execute(){strs = new UserInfo[2];UserInfo userInfo = new UserInfo(); userInfo.setUsername("u11");userInfo.setPassword("11");strs[0] = userInfo;userInfo = new UserInfo();userInfo.setUsername("u22");userInfo.setPassword("22");strs[1] = userInfo;}<s:iterator value="strs"><s:property value="username"/><s:property value="password"/><br></s:iterator>或者:<s:iterator value="strs" var="var"><s:property value="#ername"/><s:property value="#var.password"/><br> </s:iterator>8、数组(自定义对象属性)public String execute(){strs = new UserInfo[2];UserInfo userInfo = new UserInfo();userInfo.setUsername("u11");userInfo.setPassword("11");userInfo.setRoleInfo(new RoleInfo("r11")); strs[0] = userInfo;userInfo = new UserInfo();userInfo.setUsername("u22");userInfo.setPassword("22");userInfo.setRoleInfo(new RoleInfo("r22")); strs[1] = userInfo;}<s:iterator value="strs" var="var"><s:property value="#ername"/><s:property value="#var.password"/><s:property value="#var.roleInfo.rolename"/><br> </s:iterator>或者:<s:iterator value="strs"><s:property value="username"/><s:property value="password"/><s:property value="roleInfo.rolename"/><br></s:iterator>8、Map(普通属性)public String execute(){map = new HashMap<String,String>();map.put("k1", "v1");map.put("k2", "v2");}<s:iterator value="map" var="var"><s:property value="#var.key"/><s:property value="#var.value"/><br></s:iterator>或者:<s:iterator value="map"><s:property value="key"/><s:property value="value"/><br></s:iterator>8、Map(自定义对象属性)public String execute(){map = new HashMap<String,UserInfo>(); UserInfo userInfo = new UserInfo();userInfo.setUsername("u1");userInfo.setPassword("p1");userInfo.setRoleInfo(new RoleInfo("r1")); map.put("k1", userInfo);userInfo = new UserInfo();userInfo.setUsername("u2");userInfo.setPassword("p2");userInfo.setRoleInfo(new RoleInfo("r2")); map.put("k2", userInfo);}<s:iterator value="map" var="var"><s:property value="#var.key"/><s:property value="#ername"/><s:property value="#var.value.password"/><s:property value="#var.value.roleInfo.rolename"/><br></s:iterator>或者<s:iterator value="map"><s:property value="key"/><s:property value="ername"/><s:property value="value.password"/><s:property value="value.roleInfo.rolename"/><br></s:iterator>8、Map嵌套Map(自定义对象属性)public String execute(){map = new TreeMap<String,Map<String,UserInfo>>();Map<String,UserInfo> innerMap = new TreeMap<String,UserInfo>(); UserInfo userInfo = new UserInfo();userInfo.setUsername("u1");userInfo.setPassword("p1");userInfo.setRoleInfo(new RoleInfo("r1"));userInfo = new UserInfo();userInfo.setUsername("u11");userInfo.setPassword("p11");userInfo.setRoleInfo(new RoleInfo("r11"));innerMap.put("k1", userInfo);innerMap.put("k11", userInfo);map.put("key1", innerMap);//////////////////////////innerMap = new TreeMap<String,UserInfo>(); userInfo = new UserInfo();userInfo.setUsername("u2");userInfo.setPassword("p2");userInfo.setRoleInfo(new RoleInfo("r2"));userInfo = new UserInfo();userInfo.setUsername("u22");userInfo.setPassword("p22");userInfo.setRoleInfo(new RoleInfo("r22"));innerMap.put("k2", userInfo);innerMap.put("k22", userInfo);map.put("key2", innerMap);}<s:iterator value="map" var="var"><s:iterator value="value"><s:property value="#var.key"/><s:property value="key"/><s:property value="ername"/> <。

相关文档
最新文档