8Eclipse 는 ArrayList, LinkedList 를 사용 합 니 다.
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">1. Java : , , 。 :</span>
public static final int AGE_0F_PERSON = 20;
2. 자바 에서 final 상수 를 설명 할 때 보통 static 키 워드 를 추가 합 니 다. 이러한 대상 의 모든 인 스 턴 스 는 유일한 상수 값 에 접근 합 니 다.
3. IDE (Integrated Development Environment), 통합 개발 환경.
1) NetBeans.http://netbeans.org/
2) JBuilder.
3) Intellij IDEA
4) 이 클립 스 (일식, 월식)
Eclipse 상용 설정
1. 스마트 알림. abcddefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTuvW
2. 포맷: 괄호 자동 줄 바 꾸 기
Windows-Preferences->Java-CodeStyle-->Formater>New
Braces nextline
ControlStatement=>general
단축 키 ctrl + shift + F
3. 제거 방법 자동 충전 매개 변수
Windows - Preferences -> Java - editor - ContentAssist - Fill method 인수 제거
단축 키
ctrl + shift + O 자동 가 져 오기 패키지
ctrl 을 누 르 고 대응 하 는 클래스 를 클릭 하여 원본 코드 를 봅 니 다.
alt + ← 이전 코드 로 돌아 가기
//* 주석 생 성 도움말 문서 프로젝트 - Genrate javadoc
4. 집합 에 저 장 된 것 은 대상 자체 가 아니 라 대상 의 인용 이다.
public class ArrayListTest5
{
public static void main(String[] args)
{
ArrayList list = new ArrayList();
list.add(new Point(2, 3));
list.add(new Point(2, 2));
list.add(new Point(4, 4));
for(int i = 0; i < list.size(); i++)
{
System.out.println(list.get(i));// Point toString
<span style="white-space:pre"> </span>
}
System.out.println(list);// list toString
}
}
5. ArrayList 바 텀 은 배열 로 이 루어 집 니 다. 매개 변수 가 없 는 구조 방법 으로 ArrayList 대상 을 생 성 할 때 실제 적 으로 빈 Object 형식의 배열 을 구축 합 니 다.
public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0) throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity); this.elementData = new Object[initialCapacity]; } /** * Constructs an empty list with an initial capacity of ten. */ public ArrayList() { super(); this.elementData = EMPTY_ELEMENTDATA; }
6. 원 소 를 추가 할 때, 먼저 배열 용량 (ensureCapacity Internal 호출) 을 확인 하고, 배열 용량 이 10 (DEFAULT CAPACITY) 을 초과 하면 배열 을 확장 (grow) 하고, 원래 의 배열 을 새로운 배열 로 복사 합 니 다. 마지막 으로 새로 추 가 된 원 소 를 새 배열 의 끝 에 놓 습 니 다. (자바 1.7, 1.8 에서 자리 이동 (> 1)용량 을 늘 리 는 것 도 실제로는 길 이 를 원래 의 1.5 배로 바 꾸 는 것 과 같다. 1.6 과 다르다)
소스 코드 추가/** * Appends the specified element to the end of this list. * * @param e element to be appended to this list * @return <tt>true</tt> (as specified by {@link Collection#add}) */ public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true; }
private void ensureCapacityInternal(int minCapacity) { if (elementData == EMPTY_ELEMENTDATA) { minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity); } ensureExplicitCapacity(minCapacity); } private void ensureExplicitCapacity(int minCapacity) { modCount++; // overflow-conscious code if (minCapacity - elementData.length > 0) grow(minCapacity); }
private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + (oldCapacity >> 1); if (newCapacity - minCapacity < 0) newCapacity = minCapacity; if (newCapacity - MAX_ARRAY_SIZE > 0)//private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8; newCapacity = hugeCapacity(minCapacity); // minCapacity is usually close to size, so this is a win: elementData = Arrays.copyOf(elementData, newCapacity); }
7. ArrayList 요소 의 삭제 작업 은 삭 제 된 요소 의 후속 요 소 를 앞으로 이동 시 켜 야 하 며 대가 가 비교적 높다.public E remove(int index) { rangeCheck(index); modCount++; E oldValue = elementData(index); int numMoved = size - index - 1; if (numMoved > 0) System.arraycopy(elementData, index+1, elementData, index, numMoved); elementData[--size] = null; // clear to let GC do its work return oldValue; }
8. 집합 에 대상 의 인용 만 놓 을 수 있 고 원생 데이터 형식 을 놓 을 수 없습니다. 우 리 는 원생 데이터 형식의 포장 류 를 사용 해 야 집합 에 가입 할 수 있 습 니 다.
9. 집합 에 있 는 것 은 모두 Object 타 입 이 므 로 꺼 낸 것 도 Object 타 입 이 므 로 강제 타 입 을 사용 하여 실제 타 입 으로 전환 해 야 합 니 다 (넣 은 타 입).
10. ArrayList 와 LinkedList 에 대한 비교 분석
a) ArrayList 바 텀 은 배열 (순서 표) 로 이 루어 지고 LinkedList 바 텀 은 양 방향 링크 로 이 루어 진다.
b) 삽입 또는 삭제 작업 을 수행 할 때 LinkedList 를 사용 하 는 것 이 좋 습 니 다.
c) 검색 작업 을 수행 할 때 ArrayList 를 사용 하 는 것 이 좋 습 니 다.
LinkedList 소스 코드:public LinkedList() { }
public boolean add(E e) { linkLast(e); return true; }
void linkLast(E e) { final Node<E> l = last; final Node<E> newNode = new Node<>(l, e, null); last = newNode; if (l == null) first = newNode; else l.next = newNode; size++; modCount++; }
private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next = next; this.prev = prev; } }
저작권 성명: 본 고 는 블 로 거들 이 창작 한 글 로 블 로 거들 의 허락 없 이 전재 할 수 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.