Q:

Generic Linear List based on Arrays

I'm trying to write a Linear List based on arrays, but make the list be able to store any value by using Java Generics. This way I can create other programs that utilize it, but pass in different data types. I'm not entirely sure how to do this, any help would be appreciated. 
I guess Im struggling trying to set it up and create the functions. The generic type really messes me up.
For example, trying to add a removeFirst() function, I cant use a loop like this:
for (int i = 0; i < n - 1; i++)
    newList[i] = newList[i + 1];

— as it says The type of the expression must be an array type but it resolved to ArrayList.
Fair warning, I'm still learning data structures. This is what I have so far:
import java.util.ArrayList;

public class LinearList<T> {
    private static int SIZE = 10;
    private int n = 0;
    private final ArrayList<T> newList = new ArrayList<T>(SIZE);
    private T t;

    public void set(T t) {
        this.t = t;
    }

    public T get() {
        return t;
    }

    public void add(T value, int position) {
        newList.add(position, value);
        n++;
    }

    public void addFirst(T value) {
        newList.add(0, value);
        n++;
    }

    public void removeLast() {
        T value = null;
        for (int i = 0; i < newList.size(); i++)
            value = newList.get(i);
        newList.remove(value);
        n--;
    }

    public void removeFirst() {
        newList.remove(0);
        n--;
    }

    public T first() {
        return newList.get(0);
    }

    public T last() {
        int value = 0;
        for (int i = 0; i < newList.size() - 1; i++)
            value++;
        return newList.get(value);
    }

    public int count() {
        return n;
    }

    public boolean isFull() {
        return (n >= SIZE);
    }

    public boolean isEmpty() {
        return (n <= 0);
    }

    //part 4
    public void Grow() {
        int grow = SIZE / 2;
        SIZE = SIZE + grow;
    }

    public void Shrink() {
        int grow = SIZE / 2;
        SIZE = SIZE - grow;
    }

    public String toString() {
        String outStr = "" + newList;
        return outStr;
    }
}

A:

A good start would be to make it non-generic with a class you are comfortable with, such as an Integer.
Once you have it set up, you can then make it generic by adding <T> to the class name, then replacing all references of Integer with T.
public class MyArray{ becomes public class MyArray<T>{
public Integer add(Integer value){ becomes public T add(T value){
See What are Generics in Java? for more help

