Saya telah menentukan bahwa Java ArrayList.add
mirip dengan JavaScriptArray.push
Saya terjebak dalam menemukan ArrayList
fungsi yang mirip dengan berikut ini
Array.pop
Array.shift
Array.unshift
Saya condong ke arahArrayList.remove[At]
ArrayList
unik dalam standar penamaannya. Berikut persamaannya:
Array.push -> ArrayList.add(Object o); // Append the list
Array.pop -> ArrayList.remove(int index); // Remove list[index]
Array.shift -> ArrayList.remove(0); // Remove first element
Array.unshift -> ArrayList.add(int index, Object o); // Prepend the list
Perhatikan bahwa unshift
tidak menghapus elemen, tetapi menambahkan satu ke daftar. Perhatikan juga bahwa perilaku kasus sudut mungkin berbeda antara Java dan JS, karena masing-masing memiliki standarnya sendiri.
.push
?Array.push -> ArrayList.add
, dan secara khusus bertanya tentangpop
,shift
danunshift
. Membaca ini lagi, saya akan menambahkan lebih banyak penjelasan dan menambahkan.push
pada saat yang bersamaan.Saya menghadapi masalah ini beberapa waktu lalu dan saya menemukan
java.util.LinkedList
yang terbaik untuk kasus saya. Ini memiliki beberapa metode, dengan penamaan berbeda, tetapi mereka melakukan apa yang dibutuhkan:push() -> LinkedList.addLast(); // Or just LinkedList.add(); pop() -> LinkedList.pollLast(); shift() -> LinkedList.pollFirst(); unshift() -> LinkedList.addFirst();
sumber
LinkeList
menambahkan metode yang akan sangat tidak efisien padaArrayList
keList
antarmuka, ini adalah apa yang saya bingung. Metode ini berasal dari antarmukaDeque
danQueue
yang diimplementasikannya, tetapiArrayList
tidak.mungkin Anda ingin melihat-lihat
java.util.Stack
kelas. itu memiliki metode push, pop. dan menerapkan antarmuka Daftar.Untuk shift / unshift, Anda bisa mereferensikan jawaban @ Jon.
namun, sesuatu dari ArrayList yang mungkin ingin Anda pedulikan, arrayList tidak disinkronkan. tapi Stack adalah. (sub-kelas Vektor). Jika Anda memiliki persyaratan thread-safe, Stack mungkin lebih baik daripada ArrayList.
sumber
Jawaban Hebat oleh Jon .
Saya malas dan saya benci mengetik, jadi saya membuat contoh potong dan tempel sederhana untuk semua orang yang seperti saya. Nikmati!
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<String> animals = new ArrayList<>(); animals.add("Lion"); animals.add("Tiger"); animals.add("Cat"); animals.add("Dog"); System.out.println(animals); // [Lion, Tiger, Cat, Dog] // add() -> push(): Add items to the end of an array animals.add("Elephant"); System.out.println(animals); // [Lion, Tiger, Cat, Dog, Elephant] // remove() -> pop(): Remove an item from the end of an array animals.remove(animals.size() - 1); System.out.println(animals); // [Lion, Tiger, Cat, Dog] // add(0,"xyz") -> unshift(): Add items to the beginning of an array animals.add(0, "Penguin"); System.out.println(animals); // [Penguin, Lion, Tiger, Cat, Dog] // remove(0) -> shift(): Remove an item from the beginning of an array animals.remove(0); System.out.println(animals); // [Lion, Tiger, Cat, Dog] } }
sumber
Library Underscore-java berisi metode push (values), pop (), shift (), dan unshift (values).
Contoh kode:
import com.github.underscore.U: List<String> strings = Arrays.asList("one", "two", " three"); List<String> newStrings = U.push(strings, "four", "five"); // ["one", " two", "three", " four", "five"] String newPopString = U.pop(strings).fst(); // " three" String newShiftString = U.shift(strings).fst(); // "one" List<String> newUnshiftStrings = U.unshift(strings, "four", "five"); // ["four", " five", "one", " two", "three"]
sumber