Best way to pass large data list from one Activity to another in Android is Parcelable . You first create Parcelable pojo class and then create Array-List  and pass into bundle like key and value pair and then pass bundle into intent extras. 
Below I put one sample User Pojo class that implements Parcelable interface.
import android.os.Parcel;
import android.os.Parcelable;
/**
 * Created by CHETAN JOSHI on 2/1/2017.
 */
public class User implements Parcelable {
    private String city;
    private String name;
    private int age;
    public User(String city, String name, int age) {
        super();
        this.city = city;
        this.name = name;
        this.age = age;
    }
    public User(){
        super();
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @SuppressWarnings("unused")
    public User(Parcel in) {
        this();
        readFromParcel(in);
    }
    private void readFromParcel(Parcel in) {
        this.city = in.readString();
        this.name = in.readString();
        this.age = in.readInt();
    }
    public int describeContents() {
        return 0;
    }
    public final Parcelable.Creator<User> CREATOR = new Parcelable.Creator<User>() {
        public User createFromParcel(Parcel in) {
            return new User(in);
        }
        public User[] newArray(int size) {
            return new User[size];
        }
    };
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(city);
        dest.writeString(name);
        dest.writeInt(age);
    }
}
ArrayList<User> info = new ArrayList<User>();
info .add(new User("kolkata","Jhon",25));
info .add(new User("newyork","smith",26));
info .add(new User("london","kavin",25));
info .add(new User("toranto","meriyan",30));
Intent intent = new Intent(MyActivity.this,NextActivity.class);
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("user_list",info );
intent.putExtras(bundle);`
startActivity(intent );