2016-08-17 14 views
0

목록에서 이름 필드를 기반으로 중복 항목을 제거하고 싶습니다. 다음은목록 반복 및 꼭지점에서 중복 항목 제거

public class EPM_Contact_Component_Class { 
    public List<Hospital_Contacts__c> conList { get; set; } 
    public List<Hospital_Contacts__c> result { get; set; } 
    public JCT_Hospital_Model__c jctObj { get; set; } 
    public Set<Hospital_Contacts__c> myset { get; set; } 

public EPM_Contact_Component_Class(ApexPages.StandardController controller) { } 

public List<Hospital_Contacts__c> getContacts() { 
    conList = new List<Hospital_Contacts__c>(); 
    jctObj = new JCT_Hospital_Model__c(); 
    jctObj = [Select EPM_Model__r.Name,Hospital__r.Name from JCT_Hospital_Model__c where Id=:ApexPages.currentPage().getParameters().get('Id')]; 
    system.debug(jctObj.EPM_Model__r.Name); 
    conList = [select Contacts__r.Name,Contacts__r.Email,Contacts__r.Phone from Hospital_Contacts__c where EPM_Model__r.Name =: jctObj.EPM_Model__r.Name and Hospital__r.Name=:jctObj.Hospital__r.Name ORDER BY Contacts__r.Name DESC ]; 

    myset = new Set<Hospital_Contacts__c>(); 
    result = new List<Hospital_Contacts__c>(); 

     for(integer i=0;i<conList.size();i++) { 
      Hospital_Contacts__c hospi = conList.get(i); 
     for(integer j=(i+1);j<conList.size();j++) { 

      Hospital_Contacts__c hospj = conList.get(j); 
      if(hospi.Contacts__r.Name == hospj.Contacts__r.Name) { 
       conList.remove(j); 
       system.debug('REMOVED::'+j); 
      } 
     } 
    } 
    return conList; 
} 

} 

그것은이 이름 2 배를 반환, 2 개 이상 중복이있는 2 duplicates..When와 잘 작동 .. 내 코드입니다. 아무도 나를 도울 수 있습니까?

답변

0
로 루프에 대한 두 번째 변경
0

나는이 문제를 해결했다.

if(hospi.Contacts__r.Name == hospj.Contacts__r.Name && i!=j) 
:에 if 조건을 변경

for(integer j=0;j<conList.size();j++) 

님의 내면의 for 루프를 변경

**for(j=i;j<conList.size();j++)**