Adding values to list

  • I have list which hold records of an object "XYZ"

    I have an id of a record of "XYZ" object which should display in list[0] and remaining records next

    I am displaying the records using wrapper class.

    how would i add the matched record to list of zero

    I am adding the records to wrapper class in following way

    wrapperlist(v,g,xyz);

    where v and xyz are objects and g is list of string

          if(xyz.id==r){
             if(WrapperList.isEmpty()){
              WrapperList.set(0,new VWrappers(v,G,xyz));
             }
            }else {   
           WrapperList.add(new VWrappers(v,G,xyz));
            }
    

    but this would remove and replace it, The initial list[0] is lost

    ============================================================================

    I am using standard set controller for pagination

    con = new ApexPages.StandardSetController(Database.query(query));

    I am passing the records to a wrapper class and displaying the records on the vf page

    I want the replace replace the list[0] so that i can display records of my choice intially

    Can you post your code which will further help us understand what you are trying to achieve.

    I am not very clear what are you asking... can you post your code and refine your questions again

  • You can use a combination of list methods.

    //start context
    list<string> lst= new list<string>{'aa','bb','cc','dd'};
    string var = 'cc';
    
    //find the index of var
    integer index; 
    for(integer i =0;i< lst.size();i++){
     if(var==lst[i]) index=i;
    }
    //may want to throw an exception if index is still null
    
    list<string> tempLst = lst.clone();//backup your collection
    lst.clear(); //empty your collection
    
    lst.add(tempLst[index]); //retrieve your desired record and put it on index 0
    tempLst.remove(index); //remove your record from the old collection
    lst.addAll(tempLst); //add the other data to your list 
    
    system.debug(lst); /// |USER_DEBUG|[22]|DEBUG|(cc, aa, bb, dd)
    

    But, logic like this might imply you should consider exploring the apex map collection type and its methods. Know you can use the map.values() property to still reference it as a list, or can directly iterate over a map in Visualforce too.

    the index is dynamic

    While your comment is rather vague, I agree that the proposed use of .set() was incorrect and have updated my answer.

    In my case its not working i am displaying the records using standard set controller

    This is why you need to add such details to your question, so that it is clear what you truly want an answer to. I'm not sure you can do what you want with a standardSetController. I suggest you update your question, which will attract others who may have an answer.

License under CC-BY-SA with attribution


Content dated before 7/24/2021 11:53 AM

Tags used