第一题:
有一个bean如下结构
public class TestBean {
public String key1;
public String key2;
public String key3;
public int value1;
public int value2;
}
把 TestBean 放到数据集合ArrayList中,移除ArrayList中 key1 =11 key2=21 的Testbean;
要求用两种方法,代码在10行以内:
第一种方法:从右到左检索ArrayList;移除复合条件的TestBean;
public ArrayList<TestBean> init(){
ArrayList<TestBean> al = new ArrayList<TestBean>();
for(int i = 0;i<5;i++){
TestBean tb = new TestBean();
tb.key1 = "1"+i;
tb.key2 = "2"+i;
tb.key3 = "3"+i;
al.add(tb);
}
return al;
}
public static void main(String[] str){
TestMain tm = new TestMain();
ArrayList<TestBean> al_tb = tm.init();
for(int i=al_tb.size()-1;i>=0;i--){
TestBean tb = al_tb.get(i);
if(tb.key1.equals("11") && tb.key2.equals("21")){
al_tb.remove(tb);
}
}
}
第二种方法,重新构建ArrayList.
public void method2(){
TestMain tm = new TestMain();
ArrayList<TestBean> al_tb = tm.init();
ArrayList<TestBean> al_tb01 = new ArrayList<TestBean>();
for(int i=al_tb.size()-1;i>=0;i--){
TestBean tb = al_tb.get(i);
if(tb.key1.equals("11")==false || tb.key2.equals("21")==false){
al_tb01.add(tb);
}
}
al_tb = null;
}
ArrayList 是基于线性表的存储结构
LinkedList 是基于链式存储结构