2016-07-04 1 views
2

제목에서, 나는 안드로이드에 ArrayListView을 만드는 두 가지 다른 방법을 실험하고 있습니다.안드로이드 애플 리케이션을위한 목록을 만드는 가장 효율적인 방법

list.add(new Obj("smth", "Note: na, na, na", image[0])); 
list.add(new Obj("smth", "Note: na, na, na", image[1])); 
list.add(new Obj("smth", "Note: na, na, na", image[2])); 

를 상기 이미지에 대한 지원 어레이를 갖는다 :

첫번째는 다음과 같다

private int[] images = { 
     R.drawable.image1, 
     R.drawable.image2, 
     R.drawable.image3, 
     ...} 

다른 방법은 Obj.class의 게터 및 세터 방법을 사용한다. 이렇게 :

ArrayList<Obj> objects = new ArrayList<>(); 

    Obj a=new Obj(); 
    a.setName("smth"); 
    a.setNote("na,na,na"); 
    a.setImage(R.drawable.image1); 
    objects.add(a); 

    a=new Obj(); 
    a.setName("smth"); 
    a.setNote("na, na, na"); 
    a.setImage(R.drawable.image2); 
    objects.add(a); 

    a=new Obj(); 
    a.setName("smth"); 
    a.setNote("na,na,na"); 
    a.setImage(R.drawable.image3); 
    objects.add(a); 

그 중 하나가 다른 것보다 낫습니까? 어떤 식 으로든 성능이 향상 될 수 있습니까? 이 목록에 수백 개의 개체가 섞여 있으면 어떻게 될까요?

업데이트 :이 목록에 많은 개체가있는 응용 프로그램을 실행하려고하고 성능이 약간 더 나은 두 번째 방법을 사용하는 것 . 그러나 더 좋은 것들이 있다고 확신합니다!

답변

2

두 번째 방법은 메모리 사용면에서 더 좋습니다. 코드를 압축하려면 다음을 수행 할 수 있습니다. 더 적은 양의 코드로 동일한 성능을 제공 할 것입니다./아마도 당신이 그렇게 많은 세터를 호출하지 않기 때문에 약간의 성능을 향상시킬 것입니다.

ArrayList<Obj> objects = new ArrayList<>(); 

Obj a=new Obj("smth", "Note: na, na, na", R.drawable.image1); 
objects.add(a); 
a=new Obj("smth", "Note: na, na, na", R.drawable.image2); 
objects.add(a); 
a=new Obj("smth", "Note: na, na, na", R.drawable.image3); 
objects.add(a); 

그리고 생성자에 넣은 값의 패턴이있는 경우 루프를 반복하고 재 할당 및 추가하는 방법을 고려할 수 있습니다.

-1

정리 목록이 필요하면 목록보기 어댑터와 함께 배열 목록을 사용하십시오.

+0

몇 가지 코드를 제공해야합니다 ... – willome

관련 문제