title: Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
body: <p>I'm not really sure why I keep getting this error message. I'm trying to add int three to result. I don't understand why it doesn't let me do this, it seems result would be empty when I try to put three into index size1-1. </p>
  
  <p>Error message: (Lines 452, 423, 11 are marked)    </p>
  
  <pre><code>Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 0
  at java.util.ArrayList.rangeCheck(Unknown Source)
  at java.util.ArrayList.set(Unknown Source)
  at BigInt.singleDigitMultiply(BigInt.java:452)
  at BigInt.multiply(BigInt.java:423)
  at Dem.main(Dem.java:11)
  </code></pre>
  
  <p>Portion of BigInt class:   </p>
  
  <pre><code> public BigInt multiply(BigInt B2) {
  BigInt result = new BigInt();
  BigInt B1 = this;   
  result = singleDigitMultiply(B1,B2); Line 423
      return result;
  
  }
  
  private BigInt singleDigitMultiply(BigInt B1, BigInt B2) {
      int size1 = B1.num.size(), size2 = B2.num.size();
      BigInt result = new BigInt();
      //result.num = new ArrayList (Collections.nCopies( size1+1, null ));
      boolean carryover = false;
      int one, two, three, four, five, carry;
      for (int i = size1-1; i &gt;= 0; i--) {
  
           one = B1.num.get(i);
           two = B2.num.get(0); 
  
           int prod = B1.num.get(i) * B2.num.get(0);
           int prodInt = prod / 10;
           if (prod &gt; 9) carryover = true;
  
           if (i == size1-1) {
  
           if (carryover) {
           three = prod % (prodInt * 10); 
           }
           else {
              three = prod;
           }
  
      System.out.println( result.num.set(size1-1,three));          Line 452
           }
  
      //   else {
          //   four = B1.num.get(i+1) * two;
      //       carry = four % (four - prodInt);
      //       if (four &gt; 9) {
      //   
      //       five = prod + carry;
      //       three = five % (prodInt * 10);
      //       }
      //       else {
      //           three = prod;
      //       }
          //   result.num.add(i,three);
      //   }
  
  
  
  
      }
  
      return result;
  }
  </code></pre>
  
  <p>Main class:</p>
  
  <pre><code>public class Dem {
  public static void main(String[] args) {
  BigInt B1 = new BigInt("55");
  BigInt B2 = new BigInt("1");
  BigInt D = new BigInt();
  int u = 8;
  int j = 10;
  
  //BigInt J = new BigInt("u");
  D = B1.multiply(B2);           Line 11
  System.out.println(u/j);
  }
  }
  </code></pre>