Java ArrayList.add
가 JavaScript와 유사하다는 것을 확인했습니다.Array.push
나는 ArrayList
다음과 유사한 기능 을 찾는 데 붙어 있습니다.
Array.pop
Array.shift
Array.unshift
나는쪽으로 기울고있다ArrayList.remove[At]
답변:
ArrayList
명명 표준이 독특합니다. 등가는 다음과 같습니다.
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
참고 unshift
하지 않습니다 제거 하는 대신 요소를,하지만 추가 목록에 하나를. 또한 코너 케이스 동작은 각각 고유 한 표준을 가지고 있기 때문에 Java와 JS간에 다를 수 있습니다.
.push
?
Array.push -> ArrayList.add
, 특히에 대해 질문 pop
, shift
그리고 unshift
. 이 글을 다시 읽으면서 더 많은 설명을 추가 .push
하고 동시에 추가 할 것입니다.
나는 얼마 전에이 문제에 직면했으며 java.util.LinkedList
내 경우에 가장 적합 하다는 것을 알았습니다 . 이름이 다른 여러 방법이 있지만 필요한 작업을 수행하고 있습니다.
push() -> LinkedList.addLast(); // Or just LinkedList.add();
pop() -> LinkedList.pollLast();
shift() -> LinkedList.pollFirst();
unshift() -> LinkedList.addFirst();
LinkeList
매우 비효율적 방법 추가 ArrayList
받는 사람 List
이 나를 혼동 무엇을했다, 인터페이스를. 이 메소드는 구현 하는 Deque
및 Queue
인터페이스에서 가져 오지만 ArrayList
그렇지 않습니다.
룩 java.util.Stack
클래스 를 듣고 싶을 수도 있습니다 . 푸시, 팝 메소드가 있습니다. 그리고 구현 된 List 인터페이스.
shift / unshift의 경우 @Jon의 답변을 참조 할 수 있습니다.
그러나 ArrayList에 관심을 가질 수 있습니다. arrayList는 동기화 되지 않습니다 . 하지만 스택입니다. (Vector의 하위 클래스). 스레드 안전 요구 사항이있는 경우 Stack이 ArrayList보다 나을 수 있습니다.
Jon의 훌륭한 답변 입니다.
나는 게으르고 타이핑을 싫어하기 때문에 나와 같은 다른 모든 사람들을 위해 간단한 잘라 내기 및 붙여 넣기 예제를 만들었습니다. 즐겨!
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]
}
}
밑줄-자바 라이브러리에는 push (values), pop (), shift () 및 unshift (values) 메소드가 포함되어 있습니다.
코드 예 :
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"]