我在插入排序上做了一个项目,并且我已经启动了这个项目,没有关于数组列表的任何经验我在检查特定索引中的值时遇到错误。
int unsorted[] = {10, 4, 52, 5, 7};
ArrayList sorted = new ArrayList<Integer>();
sorted.add(unsorted[0]);
for (int i=1; i <= unsorted.length; i++){
int x=0;
while (unsorted[i] > sorted(x)){
x++;
if (unsorted[i]<= sorted(x)){
sorted.set(x,unsorted[i]);
if (x > sorted.size()){
sorted.add(unsorted[i]);
我在示例中遇到sorted(x)
的错误,有人能告诉我如何在特定索引处检查数组列表中的值吗?
答案 0 :(得分:1)
获取List
的元素是通过get()
方法完成的,您可以在@BilltheLizard已链接到的官方Java Doc中查找:
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
使用您已经完成的set()
方法设置元素。
基本上,对象总是有操作它的方法。
答案 1 :(得分:1)
如果您想按插入排序排序,可以尝试使用此代码。
int unsorted[]={1,5,2,7,3};
for (int i = 1; i < unsorted.length; i++) {
int key=unsorted[i];
int j=i-1;
while((j > -1) && ( unsorted [j] > key )){
unsorted [j+1] = unsorted [j];
j--;
}
unsorted[j+1]=key;
}
for (int x = 0; x < unsorted.length; x++) {
System.out.print(unsorted[x] + ", ");
}
System.out.println("\n");
答案 2 :(得分:0)
您正在寻找sorted.get(index)
答案 3 :(得分:0)
应使用正确的方法从Workbooks("VBA Practice Workbook.xls").Sheets("Sheet1").Cells(I, 6).Value = _
Application.WorksheetFunction.Sum(Workbooks(file).Sheets("Scoring (pg 2)").Range("B6:B14"))
Workbooks("VBA Practice Workbook.xlsm").Sheets("Sheet1").Cells(I, 7).Value = _
Application.WorksheetFunction.Sum(Workbooks(file).Sheets("Scoring (pg 2)").Range("C6:C14"))
(以及结果中的ArrayList)获取项目来避免编译错误:get()
。
数组和.xls
都有索引从0开始,而不是1。
当索引等于数组的长度或.xlsm
时,您应该收到错误,因此List
应该触发错误。
恕我直言,你的第一个循环应该是
ArrayList
另请注意,您可以使用add()
方法而不是ArrayList
来插入项目。
答案 4 :(得分:0)
感谢您的所有建议!大多数人建议我使用.get但是在使用它时我遇到了错误。事实证明我没有定义ArrayList将保持的类型,因此我无法使用.get。我通过添加ArrayList<Integer> sorted = new ArrayList<Integer>();
修复此问题
和
if (unsorted[i]<= sorted.get(x)){