Проблемы с сортировкой коллекций для сортировки пользовательских объектов - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть ArrayList пользовательских объектов, фильмы будут содержать всю информацию о них. У меня есть вся информация, и я делаю сортировку по мере ее поступления. Затем она заполняет все ReyclerView. Эта ошибка не происходит все время, но иногда эта ошибка появляется:

E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
    Process: took.out.the.package, PID: 10840
    java.util.ConcurrentModificationException
        at java.util.ArrayList.sort(ArrayList.java:1472)
        at java.util.Collections.sort(Collections.java:206)
        at took.out.the.package.imdb_activity.sortList(imdb_activity.java:257)
        at took.out.the.package.imdb_activity$3.onNetworkResponse(imdb_activity.java:236)
        at took.out.the.package.imdb_activity$6.onResponse(imdb_activity.java:412)
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:153)
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:919)

Это не происходит все время, и я не могу понять, почему это происходит, когда это происходит. Вот метод sortList, который он вызывает:

public void sortList()
{
    Collections.sort(details, new Comparator<Movie>()
    {
        @Override
        public int compare(Movie left, Movie right)
        {
            Log.d("compare", "compare: left.getTitle().compareTo(right.getTitle()) = " + left.getTitle().compareTo(right.getTitle()));
            return left.getTitle().compareTo(right.getTitle());
        }
    });
    myAdapter.notifyDataSetChanged();
}

Любые идеи будут великолепны. Я делаю это в Java.

...