2016. 4. 22. 16:03

Sparse arrays can be used to replace hash maps when the key is a primitive type. There are some variants for different key/value type even though not all of them are publicly available.

Benefits are:

  • Allocation-free
  • No boxing

Drawbacks:

  • Generally slower, not indicated for large collections
  • They won't work in non-android project

HashMap can be replaced by the followings:

SparseArray          <Integer, Object>
SparseBooleanArray   <Integer, Boolean>
SparseIntArray       <Integer, Integer>
SparseLongArray      <Integer, Long>
LongSparseArray      <Long, Object>
LongSparseLongArray  <Long, Long>   //this is not a public class                                 
                                    //but can be copied from  Android source code 

In terms of memory here is an example of SparseIntArray vs HashMap for 1000 elements

SparseIntArray:

class SparseIntArray {
    int[] keys;
    int[] values;
    int size;
}

Class = 12 + 3 * 4 = 24 bytes
Array = 20 + 1000 * 4 = 4024 bytes
Total = 8,072 bytes

HashMap:

class HashMap<K, V> {
    Entry<K, V>[] table;
    Entry<K, V> forNull;
    int size;
    int modCount;
    int threshold;
    Set<K> keys
    Set<Entry<K, V>> entries;
    Collection<V> values;
}

Class = 12 + 8 * 4 = 48 bytes
Entry = 32 + 16 + 16 = 64 bytes
Array = 20 + 1000 * 64 = 64024 bytes
Total = 64,136 bytes

Source: Android Memories by Romain Guy from slide 90.

The numbers above are the amount of memory (in bytes) allocated on heap by JVM. They may vary depending on the specific JVM used.

java.lang.instrument package contains some helpful methods for advanced operation like checking the size of an object with getObjectSize(Object objectToSize).

Extra info are available from official Oracle documentation

Class = 12 byte + (n instance variables) * 4 byte
Array = 20 byte + (n elements) * (element size)
Entry = 32 byte + (1st element size) + (2ns elements size)




After some googling I try to add some information to the already posted anwers:

Isaac Taylor made a performance comparision for SparseArrays and Hashmaps. He states that

the Hashmap and the SparseArray are very similar for data structure sizes under 1,000

and

when the size has been increased to the 10,000 mark [...] the Hashmap has greater performance with adding objects, while the SparseArray has greater performance when retrieving objects. [...] At a size of 100,000 [...] the Hashmap loses performance very quickly

An comparision on Edgblog shows that a SparseArray need much less memory than a HashMap because of the smaller key (int vs Integer) and the fact that

a HashMap.Entry instance must keep track of the references for the key, the value and the next entry. Plus it also needs to store the hash of the entry as an int.

As a conclusion I would say that the difference could matter if you are going to store a lot of data in your Map. Otherwise, just ignore the warning.

Posted by hoonihoon
2016. 1. 25. 22:51



안녕하세요   후니훈입니다. 


2016 아우디 A4 리미티드 에디션 이 출시 되었다는 소식을 듣고


아우디 서초전시장을 방문했습니다


바로 이차량이 2016 아우디 A4 리미티드 에디션 입니다.



 



기존 아우디 A4 와 달라진점으 느끼 셨나요?


하지만 저는 잘모르겠더라고요...


그래서 제원 설명을 들었습니다.  친절하게 설명 해주시더라구요.





2016 아우디 A4 리미티드 에디션 기본적으로 2000cc 4기통 차량이구요


전반적인것들은 비슷한데 


옵션들이 많이 들어가 있다고 설명해주시더라고요 





문두께 보이시나요 ????


저도 국산차를 타고있지만 안전적인 부분은


수입차를 따라올 수 없는것같아요 





아이들이 동승한경우에 문이안열리게 락을거는 기능


옆부분에도 스웨이드 재질이 사용되었다고


말씀해주시더라고요


친철한 설명이 너무 좋았습니다 





안쪽에도 굉장히 고급스러운 디자인이 좋았습니다




시트에도 스웨이드 재질을 사용해서 


기본형 아우디 A4차량보다 훨씬 


 고급스럽 더라구요 



좌석은 전동으로 조절가능하고


요추도 조절 가능해서 장거리 운전시에 


훨씬 쾌적한 드라이빙이 가능하다고 한다네요!!





핸들의 아우디 마크가 마음을 설레이게 하네요. 후후훗 




D 모드에서 아래로 살짝 내려주면 

S 모드로 바로 바뀌어 스포티한 드라이빙이 가능하다고

하네요



뒷좌석도 생각보다 넓어서 깜짝 놀랐습니다


깨알같은 연비 1등급이 보이네요




개인적으로 휠이 굉장히 마음에 들었습니다


19인치휠이 사용되었다고 합니다

 





뒷모습까지 빠방한 아우디 A4 리미티드 에디션이 였네요.


아우디 A4 차량에 대해 많은 것을 알아가는 시간이 였어요~ 



딜러님에게 긴 시간동안 제가 이것저것 많이물어보고 해서


귀찮으셨을텐데 싫은 내색 하나 없이 친절하게 설명해주셔서


감사하다는 말씀 드리고 싶네요 


명함 한장 받았는데 혹시 관심있으신분은 연락한번 해보세요


그럼 다음에는 더 멋진 차량을 보고 오겠습니다 ㅎㅎㅎ





Posted by hoonihoon
2015. 10. 23. 10:06


서버에서 응답받은 json 을 


오브젝트 리스트형태로 변경하는법!

ArrayList<MyObject> list = new Gson().fromJson(jsonString, new TypeToken<List<MyObject>>() { }.getType());




Posted by hoonihoon
2015. 9. 7. 08:45


안녕하세요.


이번에 뉴스모음앱 하나 출시했습니다.


기본 페이지는 카테고리별로 페이지가 구성되어있구요. 


앱의 기능을 소개해 드리겠습니다.



키워드 뉴스


설정에서 키워드를 등록 해놓으시면 관련 문구가 들어간

 뉴스가 업로드 될때 알람으로 알려줍니다.


좋아하는 연예인, 최신 핫한 사건과 관련된

 키워드를 등록하고 뉴스를 받아보세요.



검색기능


기본 검색 기능과 함께, 최근에 검색한 단어,

 인기 검색어, 많이 읽은 뉴스 리스트등도 제공됩니다.


아직 초기단계라 기본기능만 구성되어있지만

 계속해서 기능을 추가할 계획입니다




show1.jpg


show2.jpg


show3.jpg


show4.jpg 



show5.jpg 


안드로이드 마켓 다운로드


마켓 다운로드 링크 ☜ 


Posted by hoonihoon
2015. 8. 1. 14:53



오늘은 드디어 서울 3대 족발인 오향족발을 먹으로 출동 하였습니다 !!


큰 기대를 가지고, 퇴근하자마자 출동하게 되었습니다!!



오향족발은 26년 동안 변함 없는 맛으로 많이 사랑을 받았다고 하는데요~




시청 오향족발에 도착하하니 대기하시는 분들이 있네요~

한 7시 30분에 도착한 것 같습니다.


그래도 5분밖에 안기달려서 먹어서 다행입니다.




처음와 봤기에 메뉴를 한번 보겠습니다







기본세팅되는 반찬들 입니다.


특제 마늘소스양배추를 넣어서 소스로 드시면 됩니다.~








솔직히 제일 맛있었던 만두국물

이거 하나면 소주 2병은 그냥 먹을 듯 하네요 ㅎㅎ












종합적인 평가!!


서비스 :  ★★★


별관에서 먹었는데 자리가 촘촘해서,  4명이서 가면 조금 불편합니다.

나머지는 깔끔한 것 같아서 좋았습니다.



맛 : ★★★


일단 특제소스를 제 취향이 아니라...족발은 역시 상추에 쌈싸먹어야 하나 보네요 ..

다른 블로그에서 보고 쫄깃쫄깃하다고 하는데

전혀 쫄깃하지 않았습니다. 완전 속음 ㅠㅠ


하지만 만두국물이 정말 맛있었다는것!  제 입맛이 싸구려라 그런가 ㅠㅠ

한번 먹어보신 분께서는 댓글 달아 주시면 감사 하겠습니다^^



이상으로 

퇴근 후에 먹는 서울3대 족발인 오향족발 후기를 이것으로 마칠 께요~~




Posted by hoonihoon
2015. 8. 1. 14:08




오늘은 퇴근 후 신논현 2번출구에 위치한 이춘복 참치를 찾아 갔습니다.


이춘복 참치는 교보문고 건너편에 사거리에 위치하고 있어서 


근처에 가시면 잘 보이실 거에요~


당연히 이춘복 참치는 무한리필





 신촌현 2번 출구 바로 앞에 위치한 이춘복 참치! (무한리필)


기본 반찬 부터 소개 해드릴게요~




흑임자 죽 ! 일단 이거는 맛만 보고 패스했습니다 ㅎ












첫번째 나온 참치 의 모습!





다른 집은 살짝 얼려 있는 곳 도 있던데 이춘복 참치는 얼려 있지 않습니다.

와사비는 당연히 생와사비!!!  





확대해서 촬영 해봤습니다.


배고프신가요? ㅎㅎㅎ  죄송합니다 ㅋㅋㅋ


왠지 제가 나중에 다시 읽고 배고파 할듯 ㅠㅠ




자 먹는 법을 알려 드릴게요~~


참치를 기름장에 살짝 찍어서 김에 올려주시고~~


생와비, 무슨, 참치를 올리신다음에~~





한입에 쏘옥 ~ 넣어 주세요~~




참치 오링내고~


두번째 참치~  이건 집접 주방장님께서 가져다가 주시네요~


참치 눈물주(복분자) 도 가져다 주십니다.


무한리필 이기 때문에 계속 달라고 하셔도 됩니다.






저희는 참치 스페셜 먹었습니다~


참치집은 배부르게 싸게 먹으려면 기본이 최고지요!!


나중에 월급나오면 이춘복 참치에서 일품참치를 먹고 말겠습니다!!





전화번호와 위치에요~

예약하실분은 위로 전화 하시면 될 거 같네요~





나오는 길에 한컷!!



.



종합적인 평가!!


여러 참치집을 가봤는데, 25000원 짜리 참치 치고 저정도 퀄리티 나오는 곳

은 흔치 않습니다. 제가 물론 다 가본 것은 아니지만...


직장인들 모임이라 보통 강남에서 주로 만나실 텐데!!  위치도 좋고 가격도 만족!



서비스 :  ★★★


참치집은 단골이 되기 전까지.. 서비스를 기대하기는 힘듭니다....

회식이나 참치가 먹고 싶을 때 가보시길 추천해 드립니다.

가격에 비해 괜찮은 편!



맛 : ★★★


제가 참치에 대해 많은 것을 알고 있지는 않지만...

참치집을 고를 때,

생와사비인가, 참치가격이 저렴하고 잘나오는가, 사조김인가

요거 3개를 보는데요~ 


모두 만족되었습니다. 



이상으로 

퇴근 후에 먹는 신논현 이춘복 참치 후기를 이것으로 마칠 께요~~












Posted by hoonihoon
2015. 7. 27. 11:07



안녕하세요. 복면가왕이 동시간대 1위 시청률을 기록하여

선착순 2만명에게 벅스이용권을 무료로 주고 있습니다.


아래 링크로 들어가셔서 등록만해주시고, 앱을 설치하시면 바로 쿠폰등록이 되었네요.

간단하게 됩니다.


무료이고, 선착순이니깐 벅스뮤직 30일 무료이용권 빨리 받으세요 ~~


http://m.bugs.co.kr/event/freeCoupon/maskSinger









벅스뮤직 짱 !


Posted by hoonihoon
2015. 7. 20. 13:01


복면가왕 보셨나요?


이번에 화상방 클레오 파트라를 꺽고 올라간 피구왕 퉁키!!


목소리가 이정일까? 라는 의심이 전혀 들지 않았기 때문에 


몇가지 추측으로 피구왕퉁키가 이정씨라고 추측할 수 있습니다.





첫번째, 손동작


불후의명곡에서 이정씨가 고음부분에서 하는 제스처 입니다.

상당히 비슷하죠?







두번째, 복면가왕 출연진 회식자리


김구라씨가 이번회차에서 말하길..  복면가왕 방송이 끝나면 회식을 한다는 것으로 

추측되었습니다.


이번에 김태균씨와 나왔을 때 회식자리에서 이정씨가 보이네요? ^^;;






머 방송보신분은 아시겠지만~ 검은 가면속에 눈이 비치는데 

이정씨의 눈과 거희 비슷하고요~~~


이정씨가 방송이나 콘서트에서 한번도 부르지 않은 곡을 선택해서

아닐꺼라 생각했는데..

사진을 보고 맞구나....!!!


피구왕퉁키가 이정씨라고 생각하고 계속 보면 

이정씨 같더라 구요 ^^



이정씨 화이팅입니다!!!





Posted by hoonihoon