迭代器的基本使用

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class strTest {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "123";
System.out.println("string is null or empty!"+str.substring(2));//输出是“3”    改为substring(0,1);作用范围为左闭右开;
List<data> arr = new ArrayList<data>();
arr.add(new data(0,0));
arr.add(new data(1,1));
arr.add(new data(2,2));
arr.add(new data(3,0));
arr.add(new data(3,3));
arr.add(new data(4,4));
arr.add(new data(5,5));
//printAll(arr);
System.out.println(arr.get(0).getDataUp()+"  "+arr.get(0).getDataDown());
System.out.println(arr.get(1).getDataUp()+"  "+arr.get(1).getDataDown());
System.out.println(arr.get(2).getDataUp()+"  "+arr.get(2).getDataDown());
System.out.println(arr.get(3).getDataUp()+"  "+arr.get(3).getDataDown());
System.out.println(arr.get(4).getDataUp()+"  "+arr.get(4).getDataDown());
System.out.println(arr.get(5).getDataUp()+"  "+arr.get(5).getDataDown());
System.out.println("changeafter:");
data temp1 = null;
data temp2 = null;
Iterator<data> it = arr.iterator();//获取迭代器
while(it.hasNext())
{
temp1 = it.next();//第一次调用返回第一个元素的引用  并且将引用移动到下一个
if(isSame(temp1,temp2))
{
temp2.setDataDown(temp1.getDataDown());
System.out.println("log:the same is"+temp1.getDataUp());
it.remove();
}
temp2 = temp1;
}
System.out.println(arr.get(0).getDataUp()+"  "+arr.get(0).getDataDown());
System.out.println(arr.get(1).getDataUp()+"  "+arr.get(1).getDataDown());
System.out.println(arr.get(2).getDataUp()+"  "+arr.get(2).getDataDown());
System.out.println(arr.get(3).getDataUp()+"  "+arr.get(3).getDataDown());
System.out.println(arr.get(4).getDataUp()+"  "+arr.get(4).getDataDown());
System.out.println(arr.get(5).getDataUp()+"  "+arr.get(5).getDataDown());

//printAll(arr);
return;
}
static boolean isSame(data Temp0,data Temp1)
{
if((null == Temp0)||(null == Temp1))
{
return false;
}
if(Temp0.getDataUp() == Temp1.getDataUp())
{
return true;
}
return false;
}
static void printAll(List<data> d)
{
Iterator<data> it = d.iterator();
while(it.hasNext())
{
System.out.println(it.next().getDataUp()+it.next().getDataDown());
}
}


}
class data
{
public int dataUp;
public int getDataUp() {
return dataUp;
}
public void setDataUp(int dataUp) {
this.dataUp = dataUp;
}
public int getDataDown() {
return dataDown;
}
public void setDataDown(int dataDown) {
this.dataDown = dataDown;
}
public int dataDown;
data(int dataUp,int dataDown)
{
this.dataUp = dataUp;
this.dataDown = dataDown;

}

}

输出:

string is null or empty!3
0  0
1  1
2  2
3  0
3  3
4  4
changeafter:
log:the same is3
0  0
1  1
2  2
3  3
4  4
5  5



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值