Arraylist 逆置,循环右移,循环左移

来源:互联网 发布:阿里云 数据库 用法 编辑:程序博客网 时间:2024/06/06 09:15
package Exercise2;


import java.util.ArrayList;


public class exercise2_3_2 {
public ArrayList<Integer>   create(){
ArrayList<Integer> arrayList=new ArrayList<>();

for(int i=1;i<=6;i++){

arrayList.add(i);

}

return arrayList; 
}
/*
* 实现顺序列表的逆置
*/
public ArrayList<Integer> shift(ArrayList<Integer> arrayList){
for(int i=0,j=arrayList.size()-1;i<j;i++,j--){
int temp=arrayList.get(i);
arrayList.set(i,arrayList.get(j));
arrayList.set(j, temp);
}
return arrayList;
}
/*
* 实现顺序列表的循环右移
*/
public ArrayList<Integer> shiftList(ArrayList<Integer> arrayList,int k){
int j;
int temp=0;
for(int i=0;i<k;i++){
temp=arrayList.get(arrayList.size()-1);
for(j=arrayList.size()-2;j>=0;j--){
arrayList.set(j+1, arrayList.get(j));
}
arrayList.set(0, temp);
}
return arrayList;
}
/*
* 实现顺序列表的循环左移
*/
public ArrayList<Integer> leftlList(ArrayList<Integer> arrayList,int k){
int j;
int temp=0;
for(int i=0;i<k;i++){
temp=arrayList.get(0);
for(j=0;j<arrayList.size()-1;j++){
arrayList.set(j, arrayList.get(j+1));
}
arrayList.set(arrayList.size()-1, temp);
}
return arrayList;
}
public  void display(ArrayList<Integer> arrayList) { 
for(int i=0;i<arrayList.size();i++){
System.out.print(arrayList.get(i)+" "); 
}
System.out.println("");
// System.out.print(arrayList.size()); 
}
public static void main(String[] args) {
// TODO Auto-generated method stub
exercise2_3_2 e=new exercise2_3_2();
e.display(e.create());
System.out.println("就地逆置后的结果");
e.display(e.shift(e.create()));  
System.out.println("循环右移后的结果");
e.display(e.shiftList(e.create(), 4)); 
System.out.println("循环左移后的结果");
e.display(e.leftlList(e.create(), 3));   
}


}



1 2 3 4 5 6 
就地逆置后的结果
6 5 4 3 2 1 
循环右移后的结果
3 4 5 6 1 2 
循环左移后的结果
4 5 6 1 2 3

0 0