2014-12-17 8 views
0

단일 요소에 대한 그룹의 사용 권한을 저장하는 클래스가 있습니다. 이 클래스에서는 단일 그룹의 권한 집합에 대한 클래스도 있습니다. 해결책은 간단합니다. looks that.목록에서 값으로 클래스를 가져 오는 방법은 무엇입니까?

하지만 하나의 권한을 값 (group_id)을 사용하여 설정하는 방법을 알 수 없습니다. 어떻게해야합니까?

public class PermissionsData { 
    private List<PermissionsDataSingle> permissionsData; 

    PermissionsData(List<PermissionsDataSingle> permissionsData) { 
     this.permissionsData = permissionsData; 
    } 

    public PermissionsDataSingle getPermissionsByGroupID(int group_id) { 
     // ToDo 
    } 

    public class PermissionsDataSingle { 
     public int group_id; 
     public boolean canView; 
     public boolean canRead; 
     public boolean canReply; 
     public boolean canStart; 
     public boolean canUpload; 
     public boolean canDownload; 
     PermissionsDataSingle(int group_id, boolean canView, boolean canRead, boolean canReply, boolean canStart, boolean canUpload, boolean canDownload) { 
      this.group_id = group_id; 
      this.canView = canView; 
      this.canRead = canRead; 
      this.canReply = canReply; 
      this.canStart = canStart; 
      this.canUpload = canUpload; 
      this.canDownload = canDownload; 
     } 
    } 
} 
+1

'List '을 사용하지 마십시오. 대신'map '을 사용하십시오. 여기서 키는'group_id '입니다. 순서가 중요하지 않은 경우에는'HashMap'으로, 순서가 중요한 경우에는'LinkedHashMap'으로 만듭니다. 복수의'PermissionsDataSingle' 객체가 같은'group_id' 값을 공유 할 수 있다면 Guava를 사용하고'HashMultimap'을 사용하십시오. –

답변

0

목록이 항상 매우 짧은 경우이를 반복하여 각 항목의 group_id를 확인할 수 있습니다. 그렇지 않으면지도를 사용하는 것이 좋습니다.

for (PermissionsDataSingle pds : permissionsData) { 
    if (pds.group_id == group_id) { 
     return pds; 
    } 
} 
// Not found 
관련 문제