Próbuję dodawać, usuwać i odwoływać elementy z tablicy, którą utworzę w moim głównym pliku java, ale mam problem z ustaleniem poprawnej składni. W actionscript mają push() i pop() do dodawania i usuwania elementów w tablicy, czy istnieje odpowiednik w systemie Android?odpowiednik funkcji push() lub pop() dla tablic?
Odpowiedz
Zastosowanie lista Array http://developer.android.com/reference/java/util/ArrayList.html
Możesz użyć LinkedList. Posiada metody peek, poll i offer.
W Javie tablica ma stały rozmiar (po inicjalizacji), co oznacza, że nie można dodać lub usunąć elementy z tablicy.
int[] i = new int[10];
Powyższy fragment oznacza, że tablica liczb ma długość 10. Nie można dodać jedenasty całkowitą, bez ponownego przypisania odniesienie do nowej tablicy, jak następuje:
int[] i = new int[11];
W języku Java pakiet java.util zawiera wszystkie rodzaje struktur danych, które mogą obsługiwać dodawanie i usuwanie elementów z kolekcji podobnych do tablic. Klasyczna struktura danych Stack ma metody push i pop.
Dobre wyjaśnienie, należy jednak pamiętać, że Stack nie jest tak wielką klasą, jak dziedziczy po Vector, i jako taki jest w pełni zsynchronizowany.Więc chyba że potrzebujesz synchronizacji, ArrayList lub LinkedList jest prawdopodobnie lepszym rozwiązaniem. –
Dla tych, którzy nie mają czasu na wprowadzenie kodu zastępującego tablice przy pomocy Collection
s (na przykład ArrayList
), istnieje alternatywa. W przeciwieństwie Collection
s, długość tablicy nie może być zmieniony, ale tablica może być zastąpiony w następujący sposób:
array = push(array, item);
Wadą jest to, że
- cała tablica musi być kopiowane przy każdym push i
- oryginalna tablica
Object
nie została zmieniona, więc musisz odpowiednio zaktualizować zmienne.
Oto metoda push
dla String
:
(można utworzyć wiele push
metody, jeden dla String
, jeden dla int
, itp)
private static String[] push(String[] array, String push) {
String[] longer = new String[array.length + 1];
for (int i = 0; i < array.length; i++)
longer[i] = array[i];
longer[array.length] = push;
return longer;
}
Ta alternatywa jest bardziej efektywne, krótsze & trudniej do odczytu:
private static String[] push(String[] array, String push) {
String[] longer = new String[array.length + 1];
System.arraycopy(array, 0, longer, 0, array.length);
longer[array.length] = push;
return longer;
}
Zdecydowanie odradzam stosowanie tej metody. Dla naprawdę prostych i małych tablic nie będzie narzucać problemów, ale dla średniej lub ciężkiej tablicy spowoduje to, że system będzie iterować po tablicy za każdym razem, gdy zostanie dodany element. Jeśli masz więcej niż 100 elementów i chcesz dodać więcej elementów, wykonasz 303 operacje. – Panthro
Bibliotekazawiera metody push (wartości), pop(), shift() i unshift (wartości).
przykładKod:
import com.github.underscore.$:
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> strings = Arrays.asList("one", "two", " three");
List<String> newStrings = $.push(strings, "four", "five");
// ["one", " two", "three", " four", "five"]
String newPopString = $.pop(strings).fst();
// " three"
String newShiftString = $.shift(strings).fst();
// "one"
List<String> newUnshiftStrings = $.unshift(strings, "four", "five");
// ["four", " five", "one", " two", "three"]
}
}
- 1. Dlaczego kompilator generuje parę instrukcji push/pop?
- 2. Odpowiednik PHP dla funkcji parseInt?
- 3. .pop() równowartość w Scala
- 4. GCC pozwala na zwrócenie tablic z funkcji - błędu lub funkcji?
- 5. Arm montaż - wielokrotność Push/order pop i SP
- 6. Jak działa funkcja push i pop w zespole?
- 7. x86 Czy push/pop może mieć mniej niż 4 bajty?
- 8. Dojo odpowiednik funkcji jQuery.text?
- 9. Odpowiednik iOs dla funkcji udostępniania Android
- 10. Czy istnieje odpowiednik funkcji Python dla funkcji smooth.spline w R
- 11. PHP tablice: pop tablicy tablic pojedynczych elementów na jednej tablicy
- 12. wyjaśnienie dotyczące instrukcji push ebp i pop ebp w zestawie
- 13. Niestandardowa tablica dialogowa Dopasuj animacje Push i Pop
- 14. odpowiednik Files.readAllLines() dla InputStream lub Reader?
- 15. Zamawianie funkcji rekursywnej skutkuje tablicami tablic
- 16. Używanie niestandardowej funkcji Push Push w oknie dialogowym Storyboard
- 17. Jak utworzyć klucz unikalny dla obiektu NavigationStateUtils za pomocą funkcji push route w React Native/Redux?
- 18. Powiadomienia push lub Socket.io ?, lub oba?
- 19. Czy GCC tworzy typedefs dla tablic przekazywanych do funkcji?
- 20. PHP: odpowiednik funkcji SUBSTRING_INDEX MySQL?
- 21. Sapply (od R) odpowiednik dla Julia?
- 22. Usuń definicję funkcji (odpowiednik unalias)
- 23. R odpowiednik funkcji filtrującej MATLAB
- 24. Czy istnieje odpowiednik Pythona dla funkcji próbki R()?
- 25. Czy istnieje odpowiednik dla języka JavaScript funkcji Function.prototype.bind?
- 26. Odpowiednik Dart'a dla Java StringBuilder
- 27. auto_ptr dla tablic
- 28. Otrzymujesz tablice tablic ... w funkcji D?
- 29. Czy istnieje odpowiednik funkcji __noSuchMethod__ dla właściwości lub sposób wdrożenia go w JS?
- 30. Scala Function.tupled i Function.untupled odpowiednik dla zmiennej arity, lub wywoływanie funkcji arith zmiennej z krotką
Jakie tablicy masz? Czy możesz pokazać nam jakiś kod? – EboMike
int [] intArray = new int {2, 3, 5, 8, 13}; Jak mogę odwołać intArray [3], lub wszystkie elementy po jednym na raz? – clayton33