2014년 6월 26일 목요일

[자바교육,JAVA교육,JAVA주말평일,야간학원추천,자바7,JAVA7]ArrayList사용 JAVA TIP(자바팁),자바 JCF,자바 ArrayList, 자바컬렉션프레임워크

[자바교육,JAVA교육,JAVA주말평일,야간학원추천,자바7,JAVA7]ArrayList사용 JAVA TIP(자바팁),자바 JCF,자바 ArrayList, 자바컬렉션프레임워크
JCF(Java Collection Framework)의 ArrayList는 자바개발시 자주 사용되는 것 자료구조인데 성능에 연관된 개발이라면 다음을 주의하자.
1. 요소를 추가/삽입 할때는 뒤쪽에 삽입하자.
- add(E)
- add(int, E)
- addAll(List<E>)
- addAll(int, List<E>)
Argument가 하나 있는것은 뒤쪽에 추가하는데 이것을 이용하자. 중간에 끼워 넣는것은 성능에 안좋다.

몇번째에 넣으라는 Argument 두개짜리 메소드는 넣을 공간확보를 위해 그이후의 것을 우측으로 복사(System.arraycopy이용)하고 빈공간을 확보 후 ADD하므로 성능에는 비추천.

2. 요소 삭제
- remove(int) : 해당 인덱스의 요소를 삭제하고 우측에  있는 것들을 System.arrayCopy를 이용하여 복사하므로 성능에 좋지 않다.
- remove(Object) : remove(int)와 비슷하다.
- removeAll(Collection), retainAll(Collection) : removeAll은 ArrayList를 반복적으로 뒤져서 해당되는 전체를 삭제, retainAll은 ArrayList를 반복적으로 뒤져 공통되는 것을 남기고 삭제. 내부적으로 contains 메소드를 반복적으로 호출, 성능 별로다.

3. subList(int, int) : 이 메소드는 자바6, 자바7에서 내부적으로 다르게 동작하는데, 자바6에서는 AbstractList로 정의하여 recursion call을 사용하는 반면 자바7에서는 ArrayList.subList 메소드를 호출하여 sublist를 만든다. 그러므로 자바6, 자바7의 큰차이는 내부적으로 recursion call을 하는냐의 차이인데, 자바7에서는 recursion call에 대해 고민할 필요는 없으므로 자바7에서는 subList(int, int).clear등을 사용하여 삭제한다면 성능에 무리가 없을 듯 하다.       


오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급
www.oraclejavacommunity.com


평일주간(9:30~18:10) 개강
(6/30)[기업100%환급]PL/SQL,ORACLE HINT,TUNING[개강확정]
(6/30)[기업100%환급]안드로이드개발자과정[개강확정]
(6/30)[기업100%환급]SQL기초에서 Schema Object까지[개강확정]
(7/07)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/07)[기업100%환급]Spring ,MyBatis,Hibernate실무과정[개강확정]
(7/07)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(7/07)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정

평일야간(19:00~21:50) 개강
(7/01)안드로이드개발자과정[개강확정]
(7/01)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(7/02)Spring3.X, MyBatis, Hibernate실무과정[개강확정]
(7/02)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(7/02)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
(7/03)웹퍼블리싱 마스터
(7/15)SQL기초에서실무까지
(7/15)MyBatis3.X, Hibernate4.X ORM실무과정
(7/22)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지

주말(10:00~17:50) 개강
(6/28)Spring3.X, MyBatis, Hibernate실무과정[개강확정]
(6/28)안드로이드개발자과정
(6/29)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지[개강확정]
(7/05)SQL초보에서 Schema Object까지
(7/12)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(7/12)MyBatis3.X, Hibernate4.X ORM실무과정
(7/12)개발자를위한PLSQL,SQL튜닝,힌트
(7/12)실무예제로 배워보는 jQuery(개발자/디자이너를위한)
(7/13)C#,ASP.NET마스터

주말저녁(18:30~22:20) 개강
(6/28)JAVA,Network&WEB&Framework
(6/28)SQL기초에서실무까지

댓글 없음:

댓글 쓰기