public void addData(int position,T data){
  if (0 <= position && position < mData.size()) {
    mData.add(position,data);
    notifyItemInserted(position);
    notifyItemRangeChanged(position,mData.size() - position);
  }
 else {
    throw new ArrayIndexOutOfBoundsException("inserted position most greater than 0 and less than data size");
  }
}

public void addData ( int position , T data ) { if ( 0 <= position && position < mData . size ( ) ) { mData . add ( position , data ) ; notifyItemInserted ( position ) ; notifyItemRangeChanged ( position , mData . size ( ) - position ) ; } else { throw new ArrayIndexOutOfBoundsException ( "inserted position most greater than 0 and less than data size" ) ; } }
add one new data in to certain location
