【问题标题】:Mathematical calculations using ArrayLists使用 ArrayLists 进行数学计算
【发布时间】:2011-10-30 05:57:26
【问题描述】:

我想在 Java 中添加(使用数学术语)两个 Integer ArrayList,并将它们分开。

我将如何从算法上解决这个问题?我这辈子都想不出什么,也许与二的补码有关。

好的,假设我将大整数放入 ArrayLists 中,所以从 1233 和 1245 开始。我如何用 ArrayLists 划分这两个? a.get(i)?我可以很容易地用一个整数或一个长整数来做,但如果它有数千个数字,那效果就不太好了。

是的,我想添加/划分 ArrayLists 的内容。如果我使用 get 方法并添加它们,我会得到类似 [6,8,10,12] 的东西而不是那个。但我想我需要在 ArrayList 的每个插槽中有单个数字。这是否更好地解释了它?它应该类似于 Java 中的 BigInteger 类。

ArrayList a = [1,2,3,4,3,4,3,5,1,3]; ArrayList b = [9,9,9,9,9,9,9,9,9,9,9];

如何将这两个添加到 ArrayList 中,看起来应该像

ArrayList c = [1,0,1,2,3,4,3,4,3,5,1,2];

或看起来像 c = [1,2,3,4,3,4,3,5,1,2,9,8,7,6,5,6,5,6,4,8,7 ];

【问题讨论】:

  • 您是要进行向量求和(和除法)还是将每个数组视为一个长数?还是别的什么?
  • 请详细说明一下,要添加两个arrayList的内容吗?
  • 请具体说明您希望做什么。
  • 一些真实的测试数据可以帮助人们理解你想要做什么。目前很难从您的描述中形象化。
  • 你为什么不使用 BigInteger 类?

标签: java arraylist


【解决方案1】:

我假设您有相同长度的 ArrayList,并且您想在元素之间使用整数加法?

for (int i = 0; i < arr1.size(); ++i) {
    arr1.set(i, arr1.get(i) + arr2.get(i));
}

或者您可以创建第三个数组,而不是就地添加到第一个 ArrayList

ArrayList<Integer> arr3 = new ArrayList<Integer>();
for (int i = 0; i < arr1.size(); ++i) {
    arr3.add(arr1.get(i) + arr2.get(i));
}

【讨论】:

    【解决方案2】:

    Java 有一个类BigInteger 可以用任意长的数字进行数学运算。考虑这一点,而不是重新发明。

    http://docs.oracle.com/javase/1.7.0/docs/api/java/math/BigInteger.html

    【讨论】:

      猜你喜欢
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 2018-01-04
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多