Q: Scanning integers into a 2D arraylist? Ive tried different variations but I have no idea how to get this to work. Im trying to get the user to input co-ordinates that loops based off a number the user chooses, but the scanner doesnt seem to work very well with the 2d array.
Edit: Added the rest of the code to clarify what im trying to achieve, I need to be able to delete rows out of the array and have the rest move up and use mathematical operations on them.
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class ConvexHull {

public static void main(String[] args){

    int grid[][] = new int [10][10];
    int points = 0;
    boolean upperhull = false;
    boolean lowerhull = false;

    Scanner intScanner = new Scanner(System.in);

    System.out.println( "Enter number of coordinates to evaluate: " );
    points = intScanner.nextInt();

    ArrayList coords[][] = new ArrayList[points][2];

    for(int i=0; i<points; i++){
        System.out.println( "Enter the x-coordinate for point " + ( i + 1 ) );
        coords.add([i][0], intScanner.next());

        System.out.println( "Enter the y-coordinate for point " + ( i + 1 ) );
        coords[i][1] = intScanner.nextInt();
    }
        for (int i=0; i <= coords.length; i++)
         for (int x=0; x < coords.length-1; x++)
              if (coords[x][0] > coords[x+1][0])
                {
                    int temp[] = coords[x];
                    coords[x] = coords[x+1];
                    coords[x+1] = temp;
                }

    for(int j=0; j<points; j++){    
    System.out.println("Co-ordinates are " + coords[j][0] + "," + coords [j][1]);   
    }

    for(int k=0; k<points-2; k=k-1){


    int ax = coords[k][0];
    int ay = coords[k][1];
    k++;
    int bx = coords[k][0];
    int by = coords[k][1];  
    k++;
    int cx = coords[k][0];
    int cy = coords[k][1];


    int turn = (bx - ax)*(cy-ay)-(by-ay)*(cx-ax);

        if (k==2){
            if (turn > 0){
                lowerhull = true;
                System.out.println("Computing the lower hull");
            }
            else if (turn < 0){
                upperhull = true;
                System.out.println("Computing the upper hull");
            }
            else if (turn == 0){
                System.out.println("Its a straight line");
            }
                }
        else if(lowerhull = true && turn < 0){
            coords[k-1][0] = 0;
            coords[k-1][1] = 0; 
        }
        else if(upperhull = true && turn > 0){
            coords[k-1][0] = 0;
            coords[k-1][1] = 0; 
        }

    }

    for(int j=0; j<points; j++){    
    if(coords[j][0] != 0 && coords [j][1] !=0)
    System.out.println("The convex hull points are " + coords[j][0] + "," + coords [j][1]);
}
}

}

A: As you declared it, coords is a variable of type "array of arrays of ArrayLists". Why is that?
You need to declare coords as
int[][] coords = new int[points][2];

And then simply assign values like the following:
coords[i][0] = intScanner.next();

Well, I assume this is Java language. If not, then my answer might need improvements.

A: Now I very well could be wrong but I don't think you are understanding how a 2D array works.
A 2D array words in a Grid kinda way with Columns and Rows. The way you are implementing it with an ArryList is just making it harder for you.
You should store the values in an ArrayList of strings.
ArrayList<String> co = new ArrayList<String>();

And use take the two inputs of the user and add it to the ArrayList.
String c = "";
for(int i=0; i<points; i++){
c = "";
System.out.println( "Enter the x-coordinate for point " + ( i + 1 ) );
c = c + intScanner.nextInt();

System.out.println( "Enter the y-coordinate for point " + ( i + 1 ) );
c = c + "," + intScanner.nextInt();
co.add(c);
}

Now to get them back simply just split by the , and use Integer.valueOf() to get them back int.

A: It's not that the scanner doesn't work well with 2D arrays, it's how we structure the code. Let's see - first you want the user to enter how many points to evaluate:
System.out.println( "Enter number of coordinates to evaluate: " );
points = intScanner.nextInt();

Now because user will press ENTER after the number, a newline character will be added to the input, so in order for the scanner to work properly in the loop, first, consume the newline character by adding this line immediately after:
//consumes newline character 
intScanner.nextLine();

Next, if you want to use arrays, declare 2D array:
int[][] coords = new int[points][2];

and loop:
for(int i=0; i<points; i++){
    System.out.println( "Enter the x-coordinate for point " + ( i + 1 ) );
    coords[i][0] = intScanner.nextInt();

    //again, consume newline character added when user pressed ENTER
    intScanner.nextLine();

    System.out.println( "Enter the y-coordinate for point " + ( i + 1 ) );
    coords[i][1] = intScanner.nextInt();

    //and one more time, consume newline character added when user pressed ENTER
    intScanner.nextLine();
}

You can also use ArrayList if you wish. There are few ways to acomplish: you could store Strings eg. "x,y", or you could create Point class and store it in ArrayList, eg.
public class Point {
    private int x;
    private int y;

    public Point(final int x, final int y) {
        this.x = x;
        this.y = y;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Point point = (Point) o;

        if (x != point.x) return false;
        if (y != point.y) return false;

        return true;
    }
}

And then, to add:
ArrayList<Point> coords = new ArrayList<Point>();

for (int i=0; i<points; i++) {
    System.out.println( "Enter the x-coordinate for point " + ( i + 1 ) );
    int x = scan.nextInt();

    scan.nextLine();

    System.out.println( "Enter the y-coordinate for point " + ( i + 1 ) );

    int y = scan.nextInt();

    scan.nextLine();

    //create Point object and add it to list
    coords.add(new Point(x, y));
}

You can then remove either by index:
coords.remove(indexToRemove);

or if you know the Point coords:
//remove Point with coords x=1 and y=1
coords.remove(new Point(1,1));

To get the point from list, use:
Point p = coords.get(index)

