Java 在类中反转数组不会改变元素的顺序
我想通过使用OOP并在同一个数组上执行操作来反转Java数组中元素的顺序。到目前为止,我已经做了以下工作:Java 在类中反转数组不会改变元素的顺序,java,Java,我想通过使用OOP并在同一个数组上执行操作来反转Java数组中元素的顺序。到目前为止,我已经做了以下工作: public class Array{ private int count; private int[] v; public Array(){ } public Array(int n){ v=new int[n]; count=0; } public int[] getV() {
public class Array{
private int count;
private int[] v;
public Array(){
}
public Array(int n){
v=new int[n];
count=0;
}
public int[] getV() {
return v;
}
public void setV(int[] v) {
this.v = v;
}
public void print(){
for (int i=0;i<count;i++){
System.out.println(v[i]);
}
}
public void input(int n){
if (count>=v.length){
System.out.println("full");
}
else{
v[count]=n;
count++;
}
}
public Array reverse(){
int temp;
int countT=count-1;
Array a = new Array;
for (int i=0;i<count;i++){
temp=v[i];
v[i]=v[countT];
v[countT]=temp;
countT--;
}
a.setV(v);
return a;
}
//main
Array a=new Array(5);
Array temp;
int min, max,valor;
min=1;
max=100;
for (int i=10;i<=50;i=i+10){
value=(int)(Math.random()*(max-min)+1);
a.input(value);
}
temp=a.reverse();
temp.print();
iteration i = 0 : {6,2,3,4,5,1}
iteration i = 1 : {6,5,3,4,2,1}
iteration i = 2 : {6,5,4,3,2,1}
公共类数组{
私人整数计数;
私人互联网【】v;
公共数组(){
}
公共数组(int n){
v=新整数[n];
计数=0;
}
公共int[]getV(){
返回v;
}
公共无效setV(int[]v){
这个,v=v;
}
公开作废印刷品(){
对于(int i=0;i=v.length){
系统输出打印项次(“完整”);
}
否则{
v[计数]=n;
计数++;
}
}
公共数组反向(){
内部温度;
int countT=count-1;
数组a=新数组;
对于(int i=0;i而言,错误在于从两个方向(从左到右和从右到左)迭代整个数组:
正如您所看到的,它已经处于相反的状态,但您继续:
iteration i = 3 : {6,5,3,4,2,1}
iteration i = 4 : {6,2,3,4,5,1}
iteration i = 5 : {1,5,4,3,2,6}
因此,基本上你撤销了你所做的。因此,为什么你需要迭代直到count/2
iteration i = 0 : {6,2,3,4,5,1}
iteration i = 1 : {6,5,3,4,2,1}
iteration i = 2 : {6,5,4,3,2,1}
iteration i = 3 : {6,5,3,4,2,1}
iteration i = 4 : {6,2,3,4,5,1}
iteration i = 5 : {1,5,4,3,2,6}