Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - raskal

Stran: 1 [2]
16
Vývoj / Re:Java - jak vymazat z ArrayListu množinu položek
« kdy: 21. 09. 2019, 23:34:07 »
Proč bych to měl dělat takhle, když můžu použít čitelnější postup Standy Blábola? Viz.
https://forum.root.cz/index.php?topic=21857.msg317204#msg317204

Protoze v zadani je, ze se maji z listu prvky vymazat a ne ze se ma vytvorit novy list.
Navic je tu performance.

17
Vývoj / Re:Java - jak vymazat z ArrayListu množinu položek
« kdy: 21. 09. 2019, 02:32:34 »
Mám nějaký ArrayListový seznam a k němu jsem dostal jsem dostal pole, které obsahuje indexy, jež určují, které prvky se z ArrayListového seznamu mají vymazat. Když ale začnu v cyklu promazávat ten seznam, tak dojde k rozhození indexace a tím pádem jsou ty původní indexy neplatné.

Existuje nějaký způsob, jak rychle naráz vymazat určité prvky z ArrayListu, které jsou specifikovány nějakou množinou prvků?

 ;)


   public static void main(final String[] args) {
      final ArrayList<Object> arrayList = new ArrayList<Object>(Arrays.asList("a", "b", "c", "d", "e"));
      System.out.println(arrayList);
      final int[] toRemoveIdxs = new int[]{0, 3, 1, 5};
      Arrays.sort(toRemoveIdxs); // pokud toRemoveIdxs jsou nesetrizeny
      
      { // algoritmus odstraneni podle indexu
         int cnt = 0;
         for (int i = 0, toRemovePtr = 0; i < arrayList.size(); i++) {
            if (cnt > 0) {
               arrayList.set(i - cnt, arrayList.get(i));
            }
            if (toRemovePtr < toRemoveIdxs.length) {
               int toRemoveIdx = toRemoveIdxs[toRemovePtr];
               if (toRemoveIdx == i) {
                  cnt++;
                  toRemovePtr++;
               }
            }
         }
         // odseknu zbytek
         arrayList.subList(arrayList.size() - cnt, arrayList.size()).clear();
      } //

      System.out.println(arrayList);
   }


Stran: 1 [2]