2015年9月16日 星期三

List remove objects

Wrong :

        List<Integer> removeEvents = new ArrayList<>();

        ToServerEvent event;
        for (int i = 0; i < mList.size(); i++) {
            event = mList.get(i);
            if (! event.getClass().equals(EmergencyToEvent.class.getSimpleName())) {
                removeEvents.add(i);
            }
        }

        for (int j = 0; j < removeEvents.size(); j++) {
            mList.remove(removeEvents.get(j));
        }


Right :

        Iterator<T> iter = mList.iterator();

        ToServerEvent event;
        while (iter.hasNext()) {
            event = iter.next();
            if (! event.getFromClass().getSimpleName().equals(EmergencyFromEvent.class.getSimpleName())) {
                iter.remove();
            }
        }


Reference:http://stackoverflow.com/questions/13099654/how-to-remove-data-from-linkedlist-in-java

沒有留言:

張貼留言