In method
        org.eclipse.chemclipse.msd.model.core.AbstractScanMSD.addIon(boolean,
        IIon),
          
            		for(IIon
              actualIon : ionsList) {
            			if(checkIon(ion,
              actualIon)) {
            				/*
            				
              * Check whether the intensity should be added or only the
            				
              * higher intensity should be taken.<br/> Replace the
              abundance
            				
              * only, if the abundance is higher than the older one
              otherwise
            				
              * do nothing
            				
              */
            				if(addIntensity)
              {
            					addIntensities(actualIon,
              ion);
            					addNew
              = false;
            					break;
            				}
              else {
            					if(ion.getAbundance()
              >= actualIon.getAbundance()) {
            						addHigherIntensity(actualIon,
              ion);
            						addNew
              = false;
            						break;
            					}
              else {
            						addNew
              = false;
            						break;
            					}
            				}
            			}
            		}
          
          
          
          This loop will break if checkIon() return true. If I have
            a large amounts of ions to add to scan, it will cost more
            time in addIon() method.
          The ions to be added are increasing generally, so there
            might be two aspects to improve this procedure.
          1) iterate the ionsList reversely. It will meet the same
            ion earlierly and break earlierly.
          2) if the ion to be added is greater the last ion in
            ionsList, it is no necessary to loop the ionsList to check
            duplication.
          
          
          How about it?
          
          
          Best regards,
          
          Trig