online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
import java.util.ArrayList; public class Main { public static void main(String[] args) { var list = new ArrayList<Integer>(); // Tworzymy nową listę tablicową var size = getArrayListCapacity(list); // W zmiennej size będziemy trzymać aktualny rozmiar tablicy. // Niestety w Javie nie da się bezpośrednio dostać do pojemności listy. // Z tego powodu skorzystamy ze specjalnej funkcji (implementacja poniżej). System.out.printf("Początkowy rozmiar listy: %s\n", size); for (var i = 0; i < 200; i++) { // Robimy pętlę, która wykona się 200 razy // Zaczynamy od 0, będzie trwać tak długo aż licznik jest mniejszy od 200 // I na koniec każdej iteracji zwiększamy licznik o 1 // i++ to skrócony zapis dla i = i + 1 list.add(i); // Dodajemy licznik na koniec listy var newSize = getArrayListCapacity(list); // Zapisujemy aktualny rozmiar listy do zmiennej if (newSize != size) { // Sprawdzamy czy wielkość tablicy się zmieniła w stosunku do ostatniej // Jeżeli jest różna, wtedy wchodzimy w warunek size = newSize; // Zapisujemy aktualny rozmiar tablicy System.out.printf("Zmiana rozmiaru na: %s przy %s elementach\n", size, list.size()); } } } private static int getArrayListCapacity(ArrayList<Integer> list) { // Kod zapożyczony z: https://www.javacodeexamples.com/java-arraylist-capacity/1016 try { var arrayField = ArrayList.class.getDeclaredField("elementData"); // Tworzymy odniesienie do pola elementData. // Pod nim kryje się tablica, która przechowuje elementy listy. arrayField.setAccessible(true); // Ustawiamy, aby była dostępna do odczytu. // Domyślnie jest to pole prywatne, czyli ukryte przed programistą var array = (Object[])arrayField.get(list); // Wyciągamy pole elementData z konkretnej listy podanej jako argument funkcji return array.length; // Zwracamy rozmiar tablicy } catch(Exception e) { return 0; // W przypadku błędu zwróćmy 0, aczkolwiek w tym przypadku błąd nie powinien w ogóle wystąpić. } } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue