60. 성능 고려, 우선 선택 배열
자바 는 실제 시스템 개발 에 사용 되 는 것 이 점점 적어 지고 있 습 니 다. 우 리 는 보통 소스 코드 를 읽 을 때 만 만 만 날 수 있 습 니 다. 자바 에 List, Set, Map 등 집합 류 가 없어 서 사용 하기에 편리 하지만 기본 유형의 처리 에 있어 서 배열 은 큰 장점 을 가지 고 있 습 니 다. 또한 집합 류 가 바 텀 을 얻 는 것 도 배열 류 를 통 해 이 루어 집 니 다.예 를 들 어 데이터 세트 의 합 의 를 구 하 는 문제 가 있 습 니 다.
public class Client {
public static void main(String[] args) throws Exception {
int[] arr = new int[10000000];
ArrayList list = new ArrayList(10000000);
for(int i = 0;i<10000000;i++){
arr[i]=i;
list.add(i);
}
/**
*
*/
long start = System.currentTimeMillis();
int sum = 0;
for(int i = 0;i
실행 결과:
:7
List :24
운행 결 과 를 비교 해 보면 배열 의 성능 이 기본적으로 집합 의 3 배 라 는 것 을 알 수 있다.그렇다면 도대체 무엇이 이런 성능 차 이 를 초래 했 을 까?원래 기본 유형의 배열 이 연산 을 할 때 직접 연산 을 하지만 포장 유형 은 포장 을 뜯 는 문제 와 관련된다. 초기 화 할 때마다 배열 이 직접 값 을 부여 하면 된다. 그러나 List 는 기본 유형의 포장 을 한 다음 에 List 에 추가 해 야 한다. 그리고 List 는 간헐 적 으로 확대 해 야 한다. 상수 탱크 가 존재 하지만 127 이상 의 성형 에 대해 서 는List 를 초기 화 할 때 는 쌓 아 올 리 는 구역 에 (10000000 - 127) 개의 대상 을 만 들 고 연산 할 때 이 대상 을 기본 형식 으로 뜯 어서 계산 해 야 합 니 다.그래서 배열 보다 효율 이 낮 을 겁 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.