java - 需要一个使用 2 个 for 循环设置数组列表索引的公式

标签 java arraylist

我尝试使用 2 个 for 循环将数组列表中每个元素的每个值设置为零。问题是我需要一个公式将每个索引设置为 0 到 9。该公式将放置在下面代码中显示“公式”的位置。我想要的结果是打印一行 {0,0,0,0,0,0,0,0,0,0,},使用与下面完全相同的代码,但将“FORMULA”替换为适当的公式通过每个循环设置正确的索引。如果您需要进一步解释,请告诉我。

import java.util.ArrayList;

public class ArrayListPractice {

    public static ArrayList<Integer> x = new ArrayList<Integer>();

    public static void main(String args[]){
         setArrayValues();
         System.out.println(x);
     }

    private static void setArrayValues() {
        for(int i=0; i<10; i++){
            x.add(i);
        }
        for(int i=0; i<5; i++){
            for(int j=i+1; j<5; j++){
                x.set(FORMULA, 0);
            }
        }

    }

}   

最佳答案

然后下一步就可以了:

公式 = 10 - ((4-i)*(5-i))/2 + (4-j)

说明:

如果 i=0,你想要:公式 = 0+(4-j)
你想要如果 i=1: 公式 = 4+(4-j)
你想要如果 i=2: 公式 = 7+(4-j)
你想要如果 i=3: 公式 = 9+(4-j)

你的外循环从 0 到 4,所以:

公式 = (sum {k=0 到 4} k) - (sum {k=0 到 4-i} k) + (4-j)

这等于:

1/2 4 (1+4)-1/2 (4-i) (1+(4-i)) + (4-j)

这又等于:

10 - ((4-i)*(5-i))/2 + (4-j)

请注意我如何先乘后除。这样我就可以使用整数除法而不会丢失数据,因为 4-i5-i 是偶数,因此 (4-i)*(5- i) 是偶数。

如果您希望所有数字都按顺序排列,请将每次出现的 (4-j) 替换为 (j-(i+1))(j-i-1)。然后您将按顺序获得索引 0-9。

关于java - 需要一个使用 2 个 for 循环设置数组列表索引的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30042291/

相关文章:

java - 当我迭代 ArrayList 时出现 ConcurrentModificationException

Android 在 Viewpager 之间切换产生 Android crash

java - java如何实现上下滚动?

java - Kotlin 代码编译成 Jar 用于 Java 项目?

Java ArrayList - 检查元素是否为空

java - Android Arraylist 查找索引

java - Struts 2 项目是在 My Eclipse 中构建的,但未部署在 Tomcat 服务器上

java - 如何使用 Hibernate 保存绑定(bind)到另一个对象的持久对象列表

java - Joda 和 Java lang 整数不兼容

java - 使用 BufferedWriter 写入 TXT 文件 - Java