java倒序输出List
先贴代码
package com.tsubasa.collection; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator; public class ReversibleArrayList<T> extends ArrayList<T>{ public ReversibleArrayList(Collection<T> c){
super(c) ;
} public Iterable<T> reversed(){
return new Iterable<T>(){
@Override
public Iterator<T> iterator() {
return new Iterator<T>(){
int current = size() -1 ;
@Override
public boolean hasNext() {
return current > -1 ;
}
@Override
public T next() {
return get(current--);
}
@Override
public void remove() {
throw new UnsupportedOperationException() ;
}
} ;
} } ;
} public static void main(String[] args) {
ReversibleArrayList<String> list =
new ReversibleArrayList<String>(
Arrays.asList("to be or not to be it is a question".split(" "))) ; for(String str : list){
System.out.print(str + " ");
}
System.out.println();
for(String str :list.reversed()){
System.out.print(str + " ");
}
}
}
运行结果:
to be or not to be it is a question
question a is it be to not or be to
上面这种解决方案使用了所谓的适配器方法,适配器部分来自于设计模式,因为我们这里使用foreach遍历list,所以我们必须提供满足foreach的接口。
因为我们的ArrayList已经实现了Iterable接口,所以下面有两个选择来实现倒序输出:
1.覆盖ArrayList原有的iterator方法
2.自己在生产一个iterator接口。
通过上面的代码,显然这里我们选择了第二种方法。
java倒序输出List的更多相关文章
- Java——倒序输出Map集合
package com.java.test.a; import java.util.ArrayList; import java.util.LinkedHashMap; import java.uti ...
- java 倒序输出
输入五句话,用数组存储起来,然后逆序输出这五句话. import java.util.Scanner; class work1{ public static void main(String[] a ...
- 【Java】单词倒序输出
如何将一段单词倒序输出?把"Hello Java Hello China"变成"China Hello Java Hello"? 看起来好像很简单,只需要把字符 ...
- Java基础知识强化08:将字符串倒序输出(包括空格)的几种方法
1.最容易想到的估计就是利用String类的toCharArray(),再倒序输出数组的方法了: package himi.hebao05; public class TestDemo02 { pub ...
- java字符串实现正序和倒序输出
##一共4种方式 /* * string倒序输出 * 利用String类的toCharArray(),再倒序输出数组的方法 * 2018-5-18 1 ...
- Java实现字符串倒序输出的几种方法
1. 最容易想到的估计就是利用String类的toCharArray(),再倒序输出数组的方法了. import javax.swing.JOptionPane; public class Rever ...
- Java取出字符串中的大写字母,并倒序输出
package catic.test; /** * @ClassName: TestXBQ * @Description: TODO 输出字符串中的大写字母,并倒序输出 * @author xbq * ...
- HDOJ/HDU 1321 Reverse Text(倒序输出~)
Problem Description In most languages, text is written from left to right. However, there are other ...
- C#字符串的倒序输出
介绍 在本文中,我将演示如何将字符串的单词倒序输出.在这里我不是要将“John” 这样的字符串倒序为成“nhoJ”,.这是不一样的,因为它完全倒序了整个字符串.而以下代码将教你如何将“你 好 我是 缇 ...
随机推荐
- js根据对象的某一属性进行排序
function compare(property) { return function (a, b) { var value1 = new Date(a[property]); var value2 ...
- python selenium --层级定位
转自:http://www.cnblogs.com/fnng/p/3193955.html 场景: 假如两个控件,他们长的一模样,还都叫“张三”,唯一的不同是一个在北京,一个在上海,那我们就可以通过, ...
- jquery中ajax的相关事件汇总
Jquery ajax事件分类 (一) 局部事件 local events 局部事件:在单个Ajax请求对象中绑定的事件,每个 Ajax 请求对象能够依据须要绑定自己的局部事件 .局部事件仅仅会被那个 ...
- docker运行环境安装-centos(一)
在这里我们使用的是docker的社区版Docker CE,针对的是未安装docker的新的主机,如果安装过docker的早期版本,先卸载它们及关联的依赖资源,安装的版本为docker 18.03. 1 ...
- MYSQL手工注入某日本网站
作者:ice 团队:www.anying.org 转载必须注明. E-mail:1c30day@gmail.com 经过一天的辛苦劳动下班了,实在无聊,QQ上的基友基本都挂机睡觉了.找点乐子打发时 ...
- 基于AXI VDMA的图像采集系统
基于AXI VDMA的图像采集系统 转载 2017年04月18日 17:26:43 标签: framebuffer / AXIS / AXI VDMA 2494 本课程将对Xilinx提供的一款IP核 ...
- 自定义textView的placeholder和边框
想实现的效果: // // LHQsuggestionViewCtrl.m // A13 - 设置 // // Created by vic fan on 16/6/23. // Copyri ...
- yum安装的JDK的没有配置环境变量但是在/usr/bin下面都做了软链接
[root@st152 /usr/bin]# ll |grep javalrwxrwxrwx 1 root root 22 Nov 28 22:14 java -> /et ...
- datagrid多复选框
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Ch ...
- .NET平台下 极光推送
正好看到别人发了个极光的推送例子,想来前面也刚做过这个,就把我的push类共享下 public class JPush { /// <summary> /// push信息到手机应用上 J ...