>  기사  >  Java  >  JAVA에서 Collection FrameWork를 사용하는 방법은 무엇입니까?

JAVA에서 Collection FrameWork를 사용하는 방법은 무엇입니까?

王林
王林앞으로
2023-05-09 13:31:071258검색

Collection은 가장 기본적인 컬렉션 인터페이스입니다. 컬렉션은 개체 집합, 즉 컬렉션의 요소를 나타냅니다. 맵은 값 매핑에 대한 키를 제공합니다.

ArrayList와 Vector의 차이점, HashMap과 Hashtable의 차이점
답변: ArrayList와 Vector는 주로 두 가지 측면에서 볼 수 있습니다.
1. 동기성: 벡터는 스레드로부터 안전합니다. 이는 동기적임을 의미하는 반면, ArrayList는 스레드로부터 안전하고 동기적이지 않음을 의미합니다.
2. 데이터 증가: 증가가 필요할 때 Vector 기본 증가는 다음과 같습니다. ArrayList는 원래 크기의 절반이지만

HashMap과 HashTable은 주로 세 가지 측면에서 사용됩니다.
1. 역사적 이유: Hashtable은 이전 Dictionary 클래스를 기반으로 하며 HashMap은 Java 1.2에 도입된 Map 인터페이스의 구현입니다.
2. 동기성: Hashtable은 동기적임을 의미합니다. 스레드 프로그램은 안전하지 않으며 동기적이지 않습니다.
3. 값: HashMap만 테이블 항목의 키 또는 값으로 null 값을 사용할 수 있습니다.

ArrayList, Vector 및 LinkedList의 저장 성능 및 특성
ArrayList 및 Vector는 모두 사용합니다. array 이 배열의 요소 수는 실제 저장된 데이터보다 커서 요소를 추가하고 삽입할 수 있습니다. 그러나 요소를 삽입하려면 배열 이동과 같은 메모리 작업이 필요합니다. 데이터 인덱싱은 빠르지만 데이터 삽입 속도가 느리기 때문입니다. 일반적으로 ArrayList보다 성능이 떨어지는 동기화된 방법(스레드 안전성)을 사용하기 때문에 일련번호로 데이터를 인덱싱하는 방식입니다. 정방향 또는 역방향 순회가 필요하지만 데이터 삽입 시 해당 항목의 전후 항목만 기록하면 되므로 삽입 속도가 더 빠릅니다.
8 4개의 스레드를 설계합니다. 그 중 두 개는 j가 매번 1씩 증가하고 나머지 두 스레드는 j가 매번 1씩 감소합니다. 프로그램을 작성하세요.
다음 프로그램은 내부 클래스를 사용하여 스레드를 구현하며 j를 늘리거나 줄일 때 순서를 고려하지 않습니다.
public class ThreadTest1{
private int j;
public static void main(String args[]){
ThreadTest1 tt=new ThreadTest1();
Inc inc=tt.new Inc();
Dec dec=tt.new Dec ();
for(int i=0;i<2;i++){
스레드 t=new Thread(inc);
t.start();
t=new Thread(dec);
t.start() ;
}
}
비공개 동기화 void inc(){
j++;
System.out.println(Thread.currentThread().getName()+"-inc:"+j);
}
비공개 동기화 void dec( ){
j--;
System.out.println(Thread.currentThread().getName()+"-dec:"+j);
}

class Inc는 Runnable을 구현합니다{
public void run(){
for(int i=0;i<100;i++){
inc();
}
}
}
class Dec는 Runnable을 구현합니다.{
public void run(){
for(int i=0;i<100; i++){
dec();
}
}
}
}

위 내용은 JAVA에서 Collection FrameWork를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제