我想知道数组列表是否各自的方法与int[]
数组的功能相同。那么myArray[index]
之类的内容会与myArray.get(index)
相同(假设myArray
是第二个中的数组列表)?
更多例子:
myArray.length
= myArray.size()
如果是这样,我需要将代码从int[]
数组转换为数组列表。 (顺便说一下,myArray
是私有的int[]
)
public boolean deleteZeros()
{
int rightZero = -1;
for(int position1 = 0; position1 < myArray.length; position1++)
{
if(myArray [position1] == 0)
{
rightZero = position1;
}
}
if(rightZero == -1)
return false;
int [] temp = new int [myArray.length - rightZero -1];
for(int position2 = 0; position2 < temp.length; position2++ )
{
temp [position2] = myArray [rightZero + 1 + position2];
}
numMoves += 1;
myArray = temp;
return true;
}
那个代码会是这样的吗? (将myArray
替换为myArrayList
并修复相应的方法后)
public boolean deleteZeros()
{
int rightZero = -1;
for(int position1 = 0; position1 < myArrayList.size(); position1++)
{
if(myArrayList.get(position1) == 0)
{
rightZero = position1;
}
}
if(rightZero == -1)
return false;
int [] temp = new int [myArrayList.size() - rightZero -1];
for(int position2 = 0; position2 < temp.length; position2++ )
{
temp[position2] = myArrayList.get(rightZero + 1 + position2);
}
numMoves += 1;
for (int i = 0; i < temp.length; i ++)
{
myArrayList.set(i, temp[i]);
}
return true;
}
答案 0 :(得分:3)
那么myArray [index]就像myArray.get(index)一样(假设myArray是第二个中的数组列表)?
是
更多例子:
myArray.length = myArray.size()
是
那个代码会是这样的吗? (用myArrayList替换myArray并修复相应的方法后)
是的,这对我来说都很好看。虽然,你可以尝试一下。
但是,可能出现的问题是您的temp
数组与原始myArrayList
的大小不同,因此在将所有ArrayList元素设置为临时元素时,有些ArrayList中的最后几个元素将保持不变。如果您需要澄清我的意思,或者您希望我为这个可能的案例提出解决方案,请告诉我。
答案 1 :(得分:0)
要将int[]
转换为ArrayList,请使用
ArrayList<Integer> myArrayList = new ArrayList<Integer>(Arrays.asList());
您需要导入java.util.Arrays
。
答案 2 :(得分:0)
只需构建一个新的ArrayList
,然后add
逐个myArray
中的ArrayList
到int[] myArray = new int[]{1,2,3};
List<Integer> myArrayList = new ArrayList<Integer>(myArray.length);
for (int i = 0; i < myArray.length; i++) {
myArrayList.add(myArray[i]);
}
。示例代码在这里:
{{1}}
答案 3 :(得分:0)
列表还有一个myArray.subList(fromIndex, toIndex)
方法,可以让您更轻松地剪切列表,而不是在最后添加循环。