Java의 변수 배열의 원리는 계속해서 새로운 배열을 생성하고, 새로운 배열에 원래의 배열을 추가하는 것입니다. Java List의 사용법은 아래에 자세히 설명되어 있습니다. 필요한 친구들은 참고하면 됩니다
자바에서 변수배열의 원리는 계속해서 새로운 배열을 생성하고, 새로운 배열에 원래의 배열을 추가하는 것입니다. 아래에서 자바 리스트의 사용법을 자세히 설명합니다.
l 목록: 요소가 순서대로 있고(저장하면서 꺼낼 수 있으며 순서가 엉키지 않음) 요소가 반복될 수 있습니다( 첨자 1에 3이 있고 첨자 2에 3)이 있을 수도 있습니다. 수집 시스템에 인덱스가 있기 때문입니다.
z ArrayList: 기본 데이터 구조는 배열 구조를 사용합니다(배열 길이는 변수이며 50% 확장 가능 ) (쿼리는 빠르지만 추가 및 삭제가 느린 것이 특징) 스레드가 동기화되지 않음
l LinkedList: 기본 데이터 구조는 링크됨 리스트 구조 (쿼리가 느리고 추가, 삭제가 빠른 것이 특징)
z 벡터: 하단 레이어는 배열 데이터 구조 스레드 동기화 (배열 길이는 가변적이며 100%) 확장) (쿼리나 추가, 삭제가 매우 느리더라도 ArrayList로 대체됨)
List: 고유한 메소드, 모서리 표시를 조작할 수 있는 모든 메소드는 system
boolean add(int index, E element) boolean addAll(index,Collection) public static void List_add(){ ArrayList a1 = new ArrayList(); a1.add("java"); a1.add("php");//List集合中的元素可以重复 a1.add(".net"); System.out.println("原集合:"+a1); a1.add(1, "Flash"); a1.add(0, "ps"); System.out.println(a1); ArrayList a2 = new ArrayList(); a2.add("javascript"); a2.add("3dMax"); a2.add("IBM"); a1.addAll(0, a2); System.out.println(a1); }
지정된 위치의 요소 삭제
boolean remove(int index) public static void List_remove(){ ArrayList a1 = new ArrayList(); a1.add("javascript"); a1.add("php"); a1.add("flash"); System.out.println("原集合:"+a1); a1.remove(0); System.out.println(a1); }
지정된 인덱스 집합(int index, E 요소)으로 요소 수정 수정된 요소를 반환
public static void List_set() { ArrayList a1 = new ArrayList(); a1.add("javascript"); a1.add("php"); a1.add(".net"); System.out.println("原集合:"+a1); a1.set(1, "falsh"); System.out.println(a1); }
Get
get(int index) 목록의 지정된 위치에 있는 요소를 반환합니다.
subList(int fromIndex, int toIndex) 지정된 fromIndex(포함) 사이의 일부 요소를 반환합니다. 및 목록의 toIndex(독점).
public static void List_get() { ArrayList a1 = new ArrayList(); a1.add("java"); a1.add("php"); a1.add("flash");rrree
List 컬렉션에 고유한 반복자: ListIterator(Iterator의 하위 인터페이스)
참고:
반복 시 ConcurrentModificationException(동시성 예외)이 발생하므로 컬렉션 객체 의 메서드를 통해 컬렉션에 있는 요소를 조작할 수 없습니다. 따라서 반복자를 사용할 때는 다음을 사용할 수 있습니다. Iterator 메소드는 제한되어 있으므로 요소를 판단하고 제거하고 삭제하는 것만 가능합니다. 추가, 수정 등의 다른 작업을 원할 경우 해당 하위 인터페이스인 ListIterator를 사용해야 합니다. 인터페이스는 List 컬렉션의 listIterator를 통해서만 사용할 수 있습니다.
System.out.println(a1.get(0));//获取指定角标的元素,有了该方法就可以遍历该集合中的所有元素 System.out.println(a1.subList(1, 3));//获取集合中某一部分的元素,包含头不包含尾 }
Vector를 얻는 방법: Enumeration은 Vector를 추출하는 독특한 방법으로 iterator와 매우 유사합니다(실제로 열거와 반복은 동일합니다). ) 그리고 반복자
public class ListIteratorDemo { public static void main(String[] args) { ArrayList a1 = new ArrayList(); a1.add("java01"); a1.add("java02"); a1.add("java03"); a1.add("java04"); System.out.println("原集合是:"+a1); /*在迭代过程中准备添加或者删除元素 Iterator it = al.iterator(); while (it.hasNext()){ Object obj = it.next(); if (obj.equals("java02")) //al.add("java008");//会出现并发异常,因为迭代器正在操作集合,不能再用集合的方法操作集合了 it.remove();//将java02的引用从集合中删除了 System.out.println("obj:"+obj); } */ //只有List的listIterator有增,删,改,查这些功能,因为只有List有索引 ListIterator li = a1.listIterator(); while (li.hasNext()){ if(li.next().equals("java02")) //li.add("java009"); li.set("java006"); } } }
LinkedList:
특수 메서드:
addFirst(); 헤드에 요소 추가
addLast(); 꼬리에 요소 추가
getFirst(); getLast() ;
요소를 가져오지만 삭제하지는 않습니다. 컬렉션에 요소가 없으면 NoSuchElementException이 발생합니다
removeFirst();removeLast();
요소를 가져오지만 삭제합니다. 컬렉션에 요소가 없으면 NoSuchElementException이 발생합니다
JDK1.6에 등장한 대체 방법
public class VectorDemo { public static void main(String[] args) { Vector v = new Vector(); v.add("java01"); v.add("java02"); v.add("java03"); v.add("java04"); for(Enumeration en = v.elements();en.hasMoreElements();){ System.out.println(en.nextElement()); } } }
[관련 권장 사항]
2. YMP 온라인 매뉴얼
위 내용은 List 사용법에 대한 자세한 코드 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!