Collection A =new ArrayList();
A.add("a");
A.add("b");
A.add("a");
A.add("b");
A.add("c");
A中或是其他的内容。
定义一条规则:若c在a后面,则把c删掉;若b在a后面则把b删掉。我想问的是这条规则该如何用java语句实现?
A.add("a");
A.add("b");
A.add("a");
A.add("b");
A.add("c");
A中或是其他的内容。
定义一条规则:若c在a后面,则把c删掉;若b在a后面则把b删掉。我想问的是这条规则该如何用java语句实现?
Collection A =new ArrayList();
A.add("a");
A.add("b");
A.add("a");
A.add("b");
A.add("c");
Iterator iter=A.iterator();
int i=0;
int a=A.size();
String str;
while(iter.hasNext()){
i++;
str=iter.next().toString();
if(str=="a"){
a=i;
}
if(str=="b" && i>a){
iter.remove();
}
if(str=="c" && i>a){
iter.remove();
}
}
Iterator itera=A.iterator(); while(itera.hasNext()){
System.out.println(itera.next());
}
}
如果找不到A,什么也不做
Do remove according to index position
public class MyTest {
public static void main(String args[]){
List<String> l=new ArrayList<String>();
l.add("a");
l.add("b");
l.add("a");
l.add("b");
l.add("c");
new MyTest().play(l);
Iterator i=l.iterator();
while(i.hasNext()){
System.out.print(i.next()+" ");
}
}
public void play(List <String>l ){
int size=l.size();
for(int i=0;i<l.size()-1;i++){
if("ac".equals(l.get(i)+l.get(i+1))||"ab".equals(l.get(i)+l.get(i+1))){
l.remove(i+1);
}
}
if(size!=l.size()){
play(l);
}
}
}最后结果是:aa
import java.util.*;
public class MyTest {
public static void main(String args[]){
List<String> l=new ArrayList<String>();
l.add("a");
l.add("x");
l.add("c");
l.add("b");
l.add("c");
new MyTest().play(l);
Iterator i=l.iterator();
while(i.hasNext()){
System.out.print(i.next()+" ");
}
}
public void play(List <String>l ){
int size=l.size();
for(int i=0;i<l.size();i++){
for(int j=i;j<l.size();j++)
if("ac".equals(l.get(i)+l.get(j))||"ab".equals(l.get(i)+l.get(j))){
l.remove(j);
}
}
if(size!=l.size()){
play(l);
}
}
}
结果:a x
l.add("x");
l.add("c");
l.add("a");
l.add("b");
l.add("x");
l.add("c");
l.add("f");
l.add("c");是a x a x f:
希望不会再错呵呵..
谢谢!
这个不是很难把