Code
public class OrderTableActivity extends AppCompatActivity {
private  List<String> bidList = new ArrayList<>();
private List<String> askList = new ArrayList<>();
private  RecyclerView recyclerView;
private OrderTableAdapter adapter;
private BidsAsks bidsAsks;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_order_table);
    bidsAsks = populateLists(); //makes async call and gets data from API and stores in BidsAsks object
    recyclerView=(RecyclerView)findViewById(R.id.recyclerView);
    adapter = new OrderTableAdapter(OrderTableActivity.this);
    recyclerView.setLayoutManager(new LinearLayoutManager(OrderTableActivity.this));
    recyclerView.setAdapter(adapter);
    populate(); //populates the data lists
    adapter.setItemList(bidList, askList);
    Log.i("TAG", "oncreate complete");
   // adapter.notifyDataSetChanged();
}
//get data dummy``
private List<String> getData() {
    List<String> data = new ArrayList<>();
    for(int i=0; i<20; i++){
        data.add("A"+i);
    }
    return data;
}
private void populate(){
    List<List<String>> bids = bidsAsks.getBids(); //NULL pointer exception
    List<List<String>> asks = bidsAsks.getAsks();
    for(int i=0; i<100 && i<asks.size() ;i++){
        //get ith list
        String bid_value = bids.get(i).get(0);
        String ask_value = asks.get(i).get(0);
        //Log.i("X", bid_value);
        //Log.i("X", ask_value);
        bidList.add(bid_value);
        askList.add(ask_value);
        //dataList.add(map);
    }
    Log.i("size", bidList.size()+"");
    Log.i("size", askList.size()+"");
}
//works fine and gets the data and stores in the object
private BidsAsks populateLists(){
    Retrofit retrofit = RetrofitClientInstance.getRetrofitInstance();
    JsonPlaceholderApi jsonPlaceholderApi = retrofit.create(JsonPlaceholderApi.class);
    Call<BidsAsks> call = jsonPlaceholderApi.getBidsAndAsksData();
    call.enqueue(new Callback<BidsAsks>() {
        @Override
        public void onResponse(Call<BidsAsks> call, Response<BidsAsks> response) {
            if(response.isSuccessful()){
                bidsAsks = response.body();
                Log.i("TAG", bidsAsks.toString()+" found");
            }else{
                Log.i("err", "err while parsing");
            }
        }
        @Override
        public void onFailure(Call<BidsAsks> call, Throwable t) {
        }
    });
    return bidsAsks;
 }
}
Error
Error: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.cryptoinfo/com.example.cryptoinfo.OrderTableActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List com.example.cryptoinfo.BidsAsks.getBids()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List com.example.cryptoinfo.BidsAsks.getBids()' on a null object reference at com.example.cryptoinfo.OrderTableActivity.populate(OrderTableActivity.java:62) at com.example.cryptoinfo.OrderTableActivity.onCreate(OrderTableActivity.java:36) at android.app.Activity.performCreate(Activity.java:7802) at android.app.Activity.performCreate(Activity.java:7791) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) I/Process: Sending signal. PID: 1078 SIG: 9 Process 1078 terminated.
 
    