Sto cercando di aggiungere, rimuovere e fare riferimento agli elementi da un array creato nel mio file java principale, ma non riesco a trovare la sintassi corretta. In actionscript hanno push() e pop() per aggiungere e rimuovere elementi in un array, c'è un equivalente in Android?equivalente a push() o pop() per gli array?
risposta
Usa lista di array http://developer.android.com/reference/java/util/ArrayList.html
È possibile utilizzare LinkedList. Ha metodi di sbirciare, sondare e offrire.
In Java un array ha una dimensione fissa (dopo l'inizializzazione), il che significa che non è possibile aggiungere o rimuovere elementi da un array.
int[] i = new int[10];
che questo frammento significa che la matrice di interi ha una lunghezza di 10. Non è possibile aggiungere un numero intero undicesimo, senza ri-assegnare il riferimento a un nuovo array, come il seguente:
int[] i = new int[11];
In Java il pacchetto java.util contiene tutti i tipi di strutture dati che possono gestire l'aggiunta e la rimozione di elementi da raccolte di tipo array. La classica struttura dati Stack ha metodi per push e pop.
Una buona spiegazione, tuttavia, tieni a mente che Stack non è un granché di classe in quanto eredita da Vector, e come tale è completamente sincronizzato.Quindi, a meno che non sia necessaria la sincronizzazione, ArrayList o LinkedList è probabilmente un'opzione migliore. –
Per coloro che non hanno il tempo di rifattorizzare il codice per sostituire gli array con Collection
s (ad esempio ArrayList
), esiste un'alternativa. Diversamente Collection
s, la lunghezza di un array non può essere cambiato, ma la matrice può essere sostituito, in questo modo:
array = push(array, item);
Gli svantaggi sono che
- l'intera matrice deve essere copiato ogni volta che si push, e
- la matrice originale
Object
non è stata modificata, quindi è necessario aggiornare la/e variabile/e in modo appropriato.
Ecco il metodo push
per String
:
(è possibile creare più push
metodi, uno per String
, uno per int
, ecc)
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;
}
Questa alternativa è più efficiente, più breve & più difficile da leggere:
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;
}
Sconsiglio vivamente l'uso di questo metodo. Per array veramente semplici e piccoli non imporrà problemi, ma per un array medio o pesante questo farà sì che il sistema esegua un'iterazione sull'array ogni volta che viene aggiunto un oggetto. Se si dispone di una matrice di oltre 100 elementi e si desidera aggiungere altri 3 elementi, eseguirà 303 operazioni. – Panthro
La libreriacontiene i metodi push (valori), pop(), shift() e unshift (valori).
Codice esempio:
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. .pop() equivalente in scala
- 2. come funziona il push and pop nell'assemblaggio
- 3. x86 Il push/pop può essere inferiore a 4 byte?
- 4. funzione equivalente a IO.Path.GetFileName per gli URL?
- 5. IsNullOrEmpty equivalente per Array? C#
- 6. Esiste un equivalente di scipy.signal.deconvolve per gli array 2D?
- 7. equivalente a Files.readAllLines() per InputStream o Reader?
- 8. Postgres Array Append & Array Length per 'Array Push'
- 9. Perché questo semplice programma push/pop Perl non funziona?
- 10. Array PHP in equivalente a stringa
- 11. Array Push in Laravel
- 12. Braccio di montaggio - più ordine push/pop e SP
- 13. StructuralComparisons per gli array
- 14. NSTask o equivalente per iPhone
- 15. jquery push per creare array multidimensionali
- 16. WNS o MPNS per notifiche push?
- 17. iOS8 UINavigationController push/pop con problema UIView trasparente
- 18. #pragma pack() con push e pop vs disfare
- 19. Scala ListBuffer (o equivalente) shuffle
- 20. php - push array in array - numero chiave
- 21. spiegazione sull'istruzione push ebp e pop eb nell'assemblaggio
- 22. Gli array SystemVerilog sono passati per valore o riferimento?
- 23. Gli array JavaScript hanno un equivalente di "if a in list" di Python?
- 24. Come spingere/schioccare gli array in Ember.js?
- 25. equivalente di default predefinito per gli elenchi
- 26. (MongoDB Java) $ push into array
- 27. Come posso usare la variabile array predefinita Perl @_ con push?
- 28. equivalente sovrapposizione di Array # fetta
- 29. PHP Array: pop un array di array singolo elemento in un array
- 30. equivalente a callgrind per java?
Che tipo di matrice avete? Puoi mostrarci un codice? – EboMike
int [] intArray = new int {2, 3, 5, 8, 13}; come faccio a consultare intArray [3] o tutti gli elementi uno alla volta? – clayton33