Bug 548309 - Manual array copy

Use Arrays.asList or System.arraycopy instead of copying array in a for
loop

Change-Id: I139cdaf46a8552fc3c2709155ceb9c5ea100d033
Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de>
diff --git a/org.eclipse.jdt.core.manipulation/common/org/eclipse/jdt/internal/core/manipulation/StubUtility.java b/org.eclipse.jdt.core.manipulation/common/org/eclipse/jdt/internal/core/manipulation/StubUtility.java
index d3becdd..4624f6d 100644
--- a/org.eclipse.jdt.core.manipulation/common/org/eclipse/jdt/internal/core/manipulation/StubUtility.java
+++ b/org.eclipse.jdt.core.manipulation/common/org/eclipse/jdt/internal/core/manipulation/StubUtility.java
@@ -18,6 +18,7 @@
 import java.lang.reflect.Modifier;
 import java.util.AbstractList;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
@@ -1071,9 +1072,7 @@
 		}
 		if (expectedType != null) {
 			String[] names= getVariableNameSuggestions(variableKind, project, expectedType, excluded, false);
-			for (int i= 0; i < names.length; i++) {
-				res.add(names[i]);
-			}
+			res.addAll(Arrays.asList(names));
 		}
 		if (res.isEmpty()) {
 			return getDefaultVariableNameSuggestions(variableKind, excluded);
@@ -1149,9 +1148,7 @@
 
 
 	private static void add(String[] names, Set<String> result) {
-		for (int i= 0; i < names.length; i++) {
-			result.add(names[i]);
-		}
+		result.addAll(Arrays.asList(names));
 	}
 
 	private static String getBaseNameFromExpression(IJavaProject project, Expression assignedExpression, int variableKind) {
@@ -1318,9 +1315,7 @@
 				// make the existing name to favorite
 				LinkedHashSet<String> updatedNames= new LinkedHashSet<>();
 				updatedNames.add(curr);
-				for (int k= 0; k < proposedNames.length; k++) {
-					updatedNames.add(proposedNames[k]);
-				}
+				updatedNames.addAll(Arrays.asList(proposedNames));
 				proposedNames= updatedNames.toArray(new String[updatedNames.size()]);
 			}
 			newNames[i]= proposedNames;
diff --git a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/core/manipulation/util/Strings.java b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/core/manipulation/util/Strings.java
index 47ea53c..9b378ec 100644
--- a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/core/manipulation/util/Strings.java
+++ b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/core/manipulation/util/Strings.java
@@ -411,9 +411,7 @@
 	public static String[] removeTrailingEmptyLines(String[] sourceLines) {
 		int lastNonEmpty= findLastNonEmptyLineIndex(sourceLines);
 		String[] result= new String[lastNonEmpty + 1];
-		for (int i= 0; i < result.length; i++) {
-			result[i]= sourceLines[i];
-		}
+		System.arraycopy(sourceLines, 0, result, 0, result.length);
 		return result;
 	}
 
diff --git a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/callhierarchy/Implementors.java b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/callhierarchy/Implementors.java
index 9b4d10b..81f7fb3 100644
--- a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/callhierarchy/Implementors.java
+++ b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/callhierarchy/Implementors.java
@@ -16,6 +16,7 @@
 package org.eclipse.jdt.internal.corext.callhierarchy;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -184,9 +185,7 @@
                 IMethod[] methods = type.findMethods(method);
 
                 if (methods != null) {
-                    for (int j = 0; j < methods.length; j++) {
-                        foundMethods.add(methods[j]);
-                    }
+					foundMethods.addAll(Arrays.asList(methods));
                 }
 
                 subProgressMonitor.worked(1);
diff --git a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/codemanipulation/StubUtility2Core.java b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/codemanipulation/StubUtility2Core.java
index 4367ad3..f0caaef 100644
--- a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/codemanipulation/StubUtility2Core.java
+++ b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/codemanipulation/StubUtility2Core.java
@@ -686,8 +686,7 @@
 		final List<DelegateEntry> tuples= new ArrayList<>();
 		final List<IMethodBinding> declared= new ArrayList<>();
 		IMethodBinding[] typeMethods= binding.getDeclaredMethods();
-		for (int index= 0; index < typeMethods.length; index++)
-			declared.add(typeMethods[index]);
+		declared.addAll(Arrays.asList(typeMethods));
 		IVariableBinding[] typeFields= binding.getDeclaredFields();
 		for (int index= 0; index < typeFields.length; index++) {
 			IVariableBinding fieldBinding= typeFields[index];
diff --git a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/dom/Bindings.java b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/dom/Bindings.java
index 3ca4c47..b4bf376 100644
--- a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/dom/Bindings.java
+++ b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/dom/Bindings.java
@@ -19,6 +19,7 @@
 package org.eclipse.jdt.internal.corext.dom;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
@@ -252,9 +253,7 @@
 				createName(declaringType, includePackage, list);
 			} else if (includePackage && !baseType.getPackage().isUnnamed()) {
 				String[] components= baseType.getPackage().getNameComponents();
-				for (int i= 0; i < components.length; i++) {
-					list.add(components[i]);
-				}
+				list.addAll(Arrays.asList(components));
 			}
 		}
 		if (!baseType.isAnonymous()) {
diff --git a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/fix/PotentialProgrammingProblemsFixCore.java b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/fix/PotentialProgrammingProblemsFixCore.java
index 8589eeb..019f5b6 100644
--- a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/fix/PotentialProgrammingProblemsFixCore.java
+++ b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/fix/PotentialProgrammingProblemsFixCore.java
@@ -16,6 +16,7 @@
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.Hashtable;
@@ -164,9 +165,7 @@
 					//depending on how many subtypes exit in the project.
 
 					HashSet<ICompilationUnit> cus= new HashSet<>();
-					for (int i= 0; i < compilationUnits.length; i++) {
-						cus.add(compilationUnits[i]);
-					}
+					cus.addAll(Arrays.asList(compilationUnits));
 
 					monitor.subTask(Messages.format(FixMessages.Java50Fix_SerialVersion_CalculateHierarchy_description, SERIALIZABLE_NAME));
 					ITypeHierarchy hierarchy1= serializable.newTypeHierarchy(project, new SubProgressMonitor(monitor, compilationUnits.length));
diff --git a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/participants/JavaProcessors.java b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/participants/JavaProcessors.java
index 3c5993b..438b074 100644
--- a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/participants/JavaProcessors.java
+++ b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/participants/JavaProcessors.java
@@ -14,6 +14,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.corext.refactoring.participants;
 
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -45,9 +46,7 @@
 		Set<String> result= new HashSet<>();
 		for (int i= 0; i < elements.length; i++) {
 			String[] natures= computeAffectedNatures(elements[i]);
-			for (int j= 0; j < natures.length; j++) {
-				result.add(natures[j]);
-			}
+			result.addAll(Arrays.asList(natures));
 		}
 		return result.toArray(new String[result.size()]);
 	}
diff --git a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/participants/ResourceProcessors.java b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/participants/ResourceProcessors.java
index d4f750c..7b14b9e 100644
--- a/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/participants/ResourceProcessors.java
+++ b/org.eclipse.jdt.core.manipulation/core extension/org/eclipse/jdt/internal/corext/refactoring/participants/ResourceProcessors.java
@@ -14,6 +14,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.corext.refactoring.participants;
 
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -45,9 +46,7 @@
 		if (visitedProjects.contains(focus))
 			return;
 		String[] pns= focus.getDescription().getNatureIds();
-		for (int p = 0; p < pns.length; p++) {
-			result.add(pns[p]);
-		}
+		result.addAll(Arrays.asList(pns));
 		visitedProjects.add(focus);
 		IProject[] referencing= focus.getReferencingProjects();
 		for (int i= 0; i < referencing.length; i++) {
diff --git a/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/GotoReferencedTestAction.java b/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/GotoReferencedTestAction.java
index 80a748e..13601a2 100644
--- a/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/GotoReferencedTestAction.java
+++ b/org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/ui/GotoReferencedTestAction.java
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.junit.ui;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.eclipse.swt.widgets.Shell;
@@ -129,9 +130,7 @@
 					types= unit.getTypes();
 				} catch (JavaModelException ex) {
 				}
-				for (IType type : types) {
-					result.add(type);
-				}
+				result.addAll(Arrays.asList(types));
 			}
 			else if (e instanceof IMethod || e instanceof IType || e instanceof IField) {
 				result.add((IMember) e);
diff --git a/org.eclipse.jdt.ui.examples.javafamily/src/org/eclipse/jsp/launching/TomcatClasspathProvider.java b/org.eclipse.jdt.ui.examples.javafamily/src/org/eclipse/jsp/launching/TomcatClasspathProvider.java
index cf1341f..786c89e 100644
--- a/org.eclipse.jdt.ui.examples.javafamily/src/org/eclipse/jsp/launching/TomcatClasspathProvider.java
+++ b/org.eclipse.jdt.ui.examples.javafamily/src/org/eclipse/jsp/launching/TomcatClasspathProvider.java
@@ -14,6 +14,7 @@
 package org.eclipse.jsp.launching;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.eclipse.core.runtime.CoreException;
@@ -46,9 +47,7 @@
 			IVMInstall vm = JavaRuntime.computeVMInstall(configuration);
 			LibraryLocation[] libs = JavaRuntime.getLibraryLocations(vm);
 			List rtes = new ArrayList();
-			for (int i = 0; i < defaults.length; i++) {
-				rtes.add(defaults[i]);
-			}
+			rtes.addAll(Arrays.asList(defaults));
 			// add bootstrap.jar
 			String catalinaHome = TomcatLaunchDelegate.getCatalinaHome();
 			IPath path = new Path(catalinaHome).append("bin").append("bootstrap.jar"); //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java
index 1b2d261..d588d42 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ChangeSignatureTests.java
@@ -319,9 +319,7 @@
 				newInfos[i]= infos.get(permutation[i]);
 			}
 			infos.clear();
-			for (int i= 0; i < newInfos.length; i++) {
-				infos.add(newInfos[i]);
-			}
+			infos.addAll(Arrays.asList(newInfos));
 			return;
 		} else {
 			List<String> oldNameList= Arrays.asList(oldNames);
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/tests/TestTestSearchEngine.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/tests/TestTestSearchEngine.java
index 6ed8c35..5a4bdf5 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/tests/TestTestSearchEngine.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/tests/TestTestSearchEngine.java
@@ -215,9 +215,7 @@
 		HashSet<IType> res= new HashSet<>();
 		for (int i= 0; i < elements.length; i++) {
 			IType[] types= findTests(elements[i]);
-			for (int k= 0; k < types.length; k++) {
-				res.add(types[k]);
-			}
+			res.addAll(Arrays.asList(types));
 		}
 		return res.toArray(new IType[res.size()]);
 	}
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/code/ExtractTempRefactoring.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/code/ExtractTempRefactoring.java
index 2591fb6..dddad04 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/code/ExtractTempRefactoring.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/code/ExtractTempRefactoring.java
@@ -221,9 +221,7 @@
 		Assert.isTrue(prefixLength <= array.length);
 		Assert.isTrue(prefixLength >= 0);
 		ASTNode[] prefix= new ASTNode[prefixLength];
-		for (int i= 0; i < prefix.length; i++) {
-			prefix[i]= array[i];
-		}
+		System.arraycopy(array, 0, prefix, 0, prefix.length);
 		return prefix;
 	}
 
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/NLSHint.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/NLSHint.java
index b383873..5a2b843 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/NLSHint.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/NLSHint.java
@@ -87,8 +87,7 @@
 				int rawLinesLength= rawLines.length;
 				int eclipseLinesLength= eclipseNLSLines.size();
 				lines= new NLSLine[rawLinesLength + eclipseLinesLength];
-				for (int i= 0; i < rawLinesLength; i++)
-					lines[i]= rawLines[i];
+				System.arraycopy(rawLines, 0, lines, 0, rawLinesLength);
 				for (int i= 0; i < eclipseLinesLength; i++)
 					lines[i+rawLinesLength]= eclipseNLSLines.get(i);
 			}
diff --git a/org.eclipse.jdt.ui/internal compatibility/org/eclipse/jdt/internal/ui/dialogs/TypeInfoViewer.java b/org.eclipse.jdt.ui/internal compatibility/org/eclipse/jdt/internal/ui/dialogs/TypeInfoViewer.java
index 3d0f80b..b51571c 100644
--- a/org.eclipse.jdt.ui/internal compatibility/org/eclipse/jdt/internal/ui/dialogs/TypeInfoViewer.java
+++ b/org.eclipse.jdt.ui/internal compatibility/org/eclipse/jdt/internal/ui/dialogs/TypeInfoViewer.java
@@ -632,9 +632,7 @@
 				return;
 				
 			Set filteredMatches= new HashSet(matchingTypes.length * 2);
-			for (int i= 0; i < matchingTypes.length; i++) {
-				filteredMatches.add(matchingTypes[i]);
-			}
+			filteredMatches.addAll(Arrays.asList(matchingTypes));
 			
 			TypeNameMatch[] result= getSearchResult(filteredMatches, monitor);
 			if (monitor.isCanceled())
diff --git a/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/ChangeTypeContentProvider.java b/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/ChangeTypeContentProvider.java
index 3cd415c..d2f4d0f 100644
--- a/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/ChangeTypeContentProvider.java
+++ b/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/ChangeTypeContentProvider.java
@@ -65,9 +65,7 @@
 			result.add(type.getSuperclass());
 		}
 		ITypeBinding[] interfaces= type.getInterfaces();
-		for (int i=0; i < interfaces.length; i++){
-			result.add(interfaces[i]);
-		}
+		result.addAll(Arrays.asList(interfaces));
 		if (fGeneralizeType.getOriginalType().isInterface() && type != fGeneralizeType.getObject()){
 			result.add(fGeneralizeType.getObject());
 		}
diff --git a/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/UseSupertypeWizard.java b/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/UseSupertypeWizard.java
index 9801994..63cea48 100644
--- a/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/UseSupertypeWizard.java
+++ b/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/UseSupertypeWizard.java
@@ -13,6 +13,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.ui.refactoring;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -98,9 +99,7 @@
 					result.add(superclass);
 				}
 				IType[] superInterface= fHierarchy.getSuperInterfaces(type);
-				for (int i=0; i < superInterface.length; i++){
-					result.add(superInterface[i]);
-				}
+				result.addAll(Arrays.asList(superInterface));
 				try {
 					if (type.isInterface()) {
 						IType found= type.getJavaProject().findType("java.lang.Object"); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/nls/search/NLSSearchResult.java b/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/nls/search/NLSSearchResult.java
index 70d648c..8db8793 100644
--- a/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/nls/search/NLSSearchResult.java
+++ b/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/nls/search/NLSSearchResult.java
@@ -128,9 +128,7 @@
 		//TODO: copied from JavaSearchResult:
 		Match[] m= getMatches(element);
 		if (m.length != 0) {
-			for (int i= 0; i < m.length; i++) {
-				matches.add(m[i]);
-			}
+			matches.addAll(Arrays.asList(m));
 		}
 		if (element instanceof IParent) {
 			IParent parent= (IParent) element;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CategoryFilterActionGroup.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CategoryFilterActionGroup.java
index 2640226..c4d927c 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CategoryFilterActionGroup.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CategoryFilterActionGroup.java
@@ -22,6 +22,7 @@
 import java.util.Map;
 
 import com.ibm.icu.text.Collator;
+import java.util.Arrays;
 
 import org.eclipse.swt.custom.BusyIndicator;
 import org.eclipse.swt.graphics.Image;
@@ -297,9 +298,7 @@
 		String string= store.getString(getPreferenceKey());
 		if (string != null && string.length() > 0) {
 			String[] categories= string.split(";"); //$NON-NLS-1$
-			for (int i= 0; i < categories.length; i++) {
-				fFilteredCategories.add(categories[i]);
-			}
+			fFilteredCategories.addAll(Arrays.asList(categories));
 		}
 		string= store.getString(getPreferenceKey()+".LRU"); //$NON-NLS-1$
 		if (string != null && string.length() > 0) {
@@ -491,9 +490,7 @@
 			collectCategories(input[i], new IResultCollector() {
 				@Override
 				public boolean accept(String[] cats) {
-					for (int j= 0; j < cats.length; j++) {
-						categories.add(cats[j]);
-					}
+					categories.addAll(Arrays.asList(cats));
 					return false;
 				}
 			});
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/JavaBrowsingContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/JavaBrowsingContentProvider.java
index c883c3c..891ceae 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/JavaBrowsingContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/JavaBrowsingContentProvider.java
@@ -177,8 +177,7 @@
 			IPackageFragmentRoot root= roots[i];
 			if (!root.isExternal()) {
 				IJavaElement[] children= root.getChildren();
-				for (int k= 0; k < children.length; k++)
-					list.add(children[k]);
+				list.addAll(Arrays.asList(children));
 			}
 			else if (hasChildren(root)) {
 				list.add(root);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyViewPart.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyViewPart.java
index 37e8647..7b4b714 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyViewPart.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyViewPart.java
@@ -268,9 +268,7 @@
     public void setHistoryEntries(IMember[][] entries) {
         getMethodHistory().clear();
 
-        for (int i = 0; i < entries.length; i++) {
-            getMethodHistory().add(entries[i]);
-        }
+		getMethodHistory().addAll(Arrays.asList(entries));
 
         updateHistoryEntries();
     }
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarimport/RefactoringLocationControl.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarimport/RefactoringLocationControl.java
index 40fe242..fe65df0 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarimport/RefactoringLocationControl.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarimport/RefactoringLocationControl.java
@@ -13,6 +13,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.ui.jarimport;
 
+import java.util.Arrays;
 import java.util.LinkedList;
 
 import org.eclipse.swt.SWT;
@@ -130,8 +131,7 @@
 		if (settings != null) {
 			final LinkedList<String> locations= new LinkedList<>();
 			final String[] items= fCombo.getItems();
-			for (int index= 0; index < items.length; index++)
-				locations.add(items[index]);
+			locations.addAll(Arrays.asList(items));
 			final String text= fCombo.getText().trim();
 			if (!"".equals(text)) { //$NON-NLS-1$
 				locations.remove(text);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageReader.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageReader.java
index b580773..f3dc052 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageReader.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageReader.java
@@ -20,6 +20,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -203,9 +204,7 @@
 						if (history != null) {
 							final RefactoringDescriptorProxy[] descriptors= history.getDescriptors();
 							if (descriptors.length > 0) {
-								for (int index= 0; index < descriptors.length; index++) {
-									elements.add(descriptors[index]);
-								}
+								elements.addAll(Arrays.asList(descriptors));
 							}
 						}
 					} catch (CoreException exception) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarPackageWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarPackageWizardPage.java
index 5bd4b0f..0b564e9 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarPackageWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarPackageWizardPage.java
@@ -809,9 +809,7 @@
 			if (elements == null) {
 				status.add(new Status(IStatus.WARNING, JavaUI.ID_PLUGIN, Messages.format(FatJarPackagerMessages.FatJarPackageWizardPage_error_missingClassFile, BasicElementLabels.getPathLabel(entry, false))));
 			} else {
-				for (int j= 0; j < elements.length; j++) {
-					result.add(elements[j]);
-				}
+				result.addAll(Arrays.asList(elements));
 			}
 		}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocOptionsManager.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocOptionsManager.java
index 785dff9..2340937 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocOptionsManager.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocOptionsManager.java
@@ -19,6 +19,7 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.StringTokenizer;
 
@@ -491,9 +492,7 @@
 			IPath path= makeAbsolutePathFromRelative(new Path(strings[i].trim()));
 			if (path != null) {
 				IContainer[] containers= root.findContainersForLocationURI(URIUtil.toURI(path.makeAbsolute()));
-				for (int k= 0; k < containers.length; k++) {
-					res.add(containers[k]);
-				}
+				res.addAll(Arrays.asList(containers));
 			}
 
 		}
@@ -774,9 +773,7 @@
 		if (fAdditionalParams.length() + fVMParams.length() != 0) {
 			ExecutionArguments tokens= new ExecutionArguments(fVMParams, fAdditionalParams);
 			String[] vmArgsArray= tokens.getVMArgumentsArray();
-			for (int i= 0; i < vmArgsArray.length; i++) {
-				vmArgs.add(vmArgsArray[i]);
-			}
+			vmArgs.addAll(Arrays.asList(vmArgsArray));
 			String[] argsArray= tokens.getProgramArgumentsArray();
 			for (int i= 0; i < argsArray.length; i++) {
 				String arg= argsArray[i];
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocProjectContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocProjectContentProvider.java
index fb6cdb6..e78442a 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocProjectContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocProjectContentProvider.java
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.ui.javadocexport;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -110,9 +111,7 @@
 			if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
 				if (root.getPath().equals(root.getJavaProject().getPath())) {
 					Object[] packageFragments= getPackageFragments(root);
-					for (int k= 0; k < packageFragments.length; k++) {
-						result.add(packageFragments[k]);
-					}
+					result.addAll(Arrays.asList(packageFragments));
 				} else {
 					result.add(root);
 				}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocStandardWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocStandardWizardPage.java
index 8a8f211..5c94338 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocStandardWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocStandardWizardPage.java
@@ -271,9 +271,7 @@
 		String hrefs[]= fStore.getHRefs();
 		if (hrefs.length > 0) {
 			HashSet<String> set= new HashSet<>();
-			for (int i= 0; i < hrefs.length; i++) {
-				set.add(hrefs[i]);
-			}
+			set.addAll(Arrays.asList(hrefs));
 			for (int i = 0; i < referencesClasses.length; i++) {
 				JavadocLinkRef curr= referencesClasses[i];
 				URL url= curr.getURL();
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditorBreadcrumb.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditorBreadcrumb.java
index 12fad81..1cc6da6 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditorBreadcrumb.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/JavaEditorBreadcrumb.java
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.ui.javaeditor;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.eclipse.swt.SWT;
@@ -410,9 +411,7 @@
 				}
 
 				Object[] nonJavaResources= pack.getNonJavaResources();
-				for (int i= 0; i < nonJavaResources.length; i++) {
-					result.add(nonJavaResources[i]);
-				}
+				result.addAll(Arrays.asList(nonJavaResources));
 			} catch (JavaModelException e) {
 				JavaPlugin.log(e);
 			}
@@ -668,9 +667,7 @@
 							// filter out package fragments that correspond to projects and
 							// replace them with the package fragments directly
 							Object[] fragments= getPackageFragmentRootContent(root);
-							for (int j= 0; j < fragments.length; j++) {
-								result.add(fragments[j]);
-							}
+							result.addAll(Arrays.asList(fragments));
 						} else {
 							result.add(root);
 						}
@@ -690,9 +687,7 @@
 					}
 				}
 				Object[] resources= project.getNonJavaResources();
-				for (int i= 0; i < resources.length; i++) {
-					result.add(resources[i]);
-				}
+				result.addAll(Arrays.asList(resources));
 				return result.toArray();
 			}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/model/JavaSynchronizationContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/model/JavaSynchronizationContentProvider.java
index 7c7b30b..1a800bb 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/model/JavaSynchronizationContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/model/JavaSynchronizationContentProvider.java
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.ui.model;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -475,8 +476,7 @@
 	 */
 	private Object[] getPackageFragmentChildren(final ISynchronizationContext context, final Object parent, final Object[] children) {
 		final Set<Object> set= new HashSet<>();
-		for (int index= 0; index < children.length; index++)
-			set.add(children[index]);
+		set.addAll(Arrays.asList(children));
 		IPackageFragment packageFragment= (IPackageFragment) parent;
 		IResource resource= packageFragment.getResource();
 		if (resource != null) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/ClassPathContainer.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/ClassPathContainer.java
index c1c3817..d544a3e 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/ClassPathContainer.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/ClassPathContainer.java
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.ui.packageview;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.eclipse.core.runtime.IAdaptable;
@@ -187,9 +188,7 @@
 	public IAdaptable[] getChildren() {
 		List<IAdaptable> list= new ArrayList<>();
 		IPackageFragmentRoot[] roots= getPackageFragmentRoots();
-		for (int i= 0; i < roots.length; i++) {
-			list.add(roots[i]);
-		}
+		list.addAll(Arrays.asList(roots));
 		if (fContainer != null) {
 			IClasspathEntry[] classpathEntries= fContainer.getClasspathEntries();
 			if (classpathEntries == null) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
index 1433641..497d368 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.ui.packageview;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
@@ -249,9 +250,7 @@
 		getHierarchicalPackageRootChildren(root, result);
 		if (!isProjectPackageFragmentRoot(root)) {
 			Object[] nonJavaResources= root.getNonJavaResources();
-			for (int i= 0; i < nonJavaResources.length; i++) {
-				result.add(nonJavaResources[i]);
-			}
+			result.addAll(Arrays.asList(nonJavaResources));
 		}
 		return result.toArray();
 	}
@@ -269,9 +268,7 @@
 		Object[] nonPackages= super.getPackageContent(fragment);
 		if (result.isEmpty())
 			return nonPackages;
-		for (int i= 0; i < nonPackages.length; i++) {
-			result.add(nonPackages[i]);
-		}
+		result.addAll(Arrays.asList(nonPackages));
 		return result.toArray();
 	}
 
@@ -288,9 +285,7 @@
 		Object[] others= super.getFolderContent(folder);
 		if (result.isEmpty())
 			return others;
-		for (int i= 0; i < others.length; i++) {
-			result.add(others[i]);
-		}
+		result.addAll(Arrays.asList(others));
 		return result.toArray();
 	}
 
@@ -344,9 +339,7 @@
 					// filter out package fragments that correspond to projects and
 					// replace them with the package fragments directly
 					Object[] fragments= getPackageFragmentRootContent(root);
-					for (int j= 0; j < fragments.length; j++) {
-						result.add(fragments[j]);
-					}
+					result.addAll(Arrays.asList(fragments));
 				} else {
 					result.add(root);
 				}
@@ -366,9 +359,7 @@
 			}
 		}
 		Object[] resources= project.getNonJavaResources();
-		for (int i= 0; i < resources.length; i++) {
-			result.add(resources[i]);
-		}
+		result.addAll(Arrays.asList(resources));
 		return result.toArray();
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/TypeFilterPreferencePage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/TypeFilterPreferencePage.java
index 7e447ab..3247a98 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/TypeFilterPreferencePage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/TypeFilterPreferencePage.java
@@ -234,13 +234,9 @@
 		ArrayList<String> res= new ArrayList<>();
 
 		String[] enabledEntries= unpackOrderList(enabled);
-		for (int i= 0; i < enabledEntries.length; i++) {
-			res.add(enabledEntries[i]);
-		}
+		res.addAll(Arrays.asList(enabledEntries));
 		String[] disabledEntries= unpackOrderList(disabled);
-		for (int i= 0; i < disabledEntries.length; i++) {
-			res.add(disabledEntries[i]);
-		}
+		res.addAll(Arrays.asList(disabledEntries));
 
 		fFilterListField.setElements(res);
 		fFilterListField.setCheckedElements(Arrays.asList(enabledEntries));
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesCorrectionProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesCorrectionProcessor.java
index 4c04315..96d5db4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesCorrectionProcessor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesCorrectionProcessor.java
@@ -81,15 +81,11 @@
 				List<ICompletionProposal> proposals= new ArrayList<>();
 				ICompletionProposal[] spellingProposals= fSpellingCorrectionProcessor.computeQuickAssistProposals(quickAssistContext);
 				if (spellingProposals.length > 1) {
-					for (int i= 0; i < spellingProposals.length; i++) {
-						proposals.add(spellingProposals[i]);
-					}
+					proposals.addAll(Arrays.asList(spellingProposals));
 				}
 				ICompletionProposal[] assists= PropertiesQuickAssistProcessor.collectAssists(createAssistContext(context));
 				if (assists != null) {
-					for (int i= 0; i < assists.length; i++) {
-						proposals.add(assists[i]);
-					}
+					proposals.addAll(Arrays.asList(assists));
 				}
 				res= proposals.toArray(new ICompletionProposal[proposals.size()]);
 			} catch (BadLocationException e) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileSourceViewerConfiguration.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileSourceViewerConfiguration.java
index 7965074..60553e7 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileSourceViewerConfiguration.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/propertiesfileeditor/PropertiesFileSourceViewerConfiguration.java
@@ -15,6 +15,7 @@
 package org.eclipse.jdt.internal.ui.propertiesfileeditor;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -224,8 +225,7 @@
 		int length= IPropertiesFilePartitions.PARTITIONS.length;
 		String[] contentTypes= new String[length + 1];
 		contentTypes[0]= IDocument.DEFAULT_CONTENT_TYPE;
-		for (int i= 0; i < length; i++)
-			contentTypes[i+1]= IPropertiesFilePartitions.PARTITIONS[i];
+		System.arraycopy(IPropertiesFilePartitions.PARTITIONS, 0, contentTypes, 1, length);
 
 		return contentTypes;
 	}
@@ -360,9 +360,7 @@
 				return autoEditStrategies;
 			}
 			List<IAutoEditStrategy> stratergies= new ArrayList<>();
-			for (int i= 0; i < autoEditStrategies.length; i++) {
-				stratergies.add(autoEditStrategies[i]);
-			}
+			stratergies.addAll(Arrays.asList(autoEditStrategies));
 			stratergies.add(new PropertiesFileAutoEditStrategy(((IFileEditorInput)fTextEditor.getEditorInput()).getFile(), sourceViewer));
 			return stratergies.toArray(new IAutoEditStrategy[stratergies.size()]);
 		} catch (CoreException e) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/AbstractJavaSearchResult.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/AbstractJavaSearchResult.java
index 7c076b0..89dd8a7 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/AbstractJavaSearchResult.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/search/AbstractJavaSearchResult.java
@@ -13,6 +13,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.ui.search;
 
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -69,18 +70,14 @@
 	private void collectMatches(Set<Match> matches, IFile element) {
 		Match[] m= getMatches(element);
 		if (m.length != 0) {
-			for (int i= 0; i < m.length; i++) {
-				matches.add(m[i]);
-			}
+			matches.addAll(Arrays.asList(m));
 		}
 	}
 
 	private void collectMatches(Set<Match> matches, IJavaElement element) {
 		Match[] m= getMatches(element);
 		if (m.length != 0) {
-			for (int i= 0; i < m.length; i++) {
-				matches.add(m[i]);
-			}
+			matches.addAll(Arrays.asList(m));
 		}
 		if (element instanceof IParent) {
 			IParent parent= (IParent) element;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ClasspathFixProcessorDescriptor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ClasspathFixProcessorDescriptor.java
index 9ab25dd..73886b0 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ClasspathFixProcessorDescriptor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ClasspathFixProcessorDescriptor.java
@@ -190,9 +190,7 @@
 						if (processor != null) {
 							ClasspathFixProposal[] fixProposals= processor.getFixImportProposals(project, missingType);
 							if (fixProposals != null) {
-								for (int k= 0; k < fixProposals.length; k++) {
-									proposals.add(fixProposals[k]);
-								}
+								proposals.addAll(Arrays.asList(fixProposals));
 								overriddenIds.addAll(curr.getOverridenIds());
 							}
 						}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/JavaCorrectionProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/JavaCorrectionProcessor.java
index 6796363..d0392c1 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/JavaCorrectionProcessor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/JavaCorrectionProcessor.java
@@ -386,9 +386,7 @@
 			if (curr != null) {
 				IJavaCompletionProposal[] res= curr.getCorrections(fContext, fLocations);
 				if (res != null) {
-					for (int k= 0; k < res.length; k++) {
-						fProposals.add(res[k]);
-					}
+					fProposals.addAll(Arrays.asList(res));
 				}
 			}
 		}
@@ -411,9 +409,7 @@
 			if (curr != null) {
 				IJavaCompletionProposal[] res= curr.getAssists(fContext, fLocations);
 				if (res != null) {
-					for (int k= 0; k < res.length; k++) {
-						fProposals.add(res[k]);
-					}
+					fProposals.addAll(Arrays.asList(res));
 				}
 			}
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/javadoc/LegacyJavadocCompletionProposalComputer.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/javadoc/LegacyJavadocCompletionProposalComputer.java
index 76c28ca..53c5e0e 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/javadoc/LegacyJavadocCompletionProposalComputer.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/javadoc/LegacyJavadocCompletionProposalComputer.java
@@ -15,6 +15,7 @@
 
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
@@ -96,9 +97,7 @@
 				IJavadocCompletionProcessor curr= processors[i];
 				IContextInformation[] contextInfos= curr.computeContextInformation(cu, offset);
 				if (contextInfos != null) {
-					for (int k= 0; k < contextInfos.length; k++) {
-						result.add(contextInfos[k]);
-					}
+					result.addAll(Arrays.asList(contextInfos));
 				} else if (error == null) {
 					error= curr.getErrorMessage();
 				}
@@ -133,9 +132,7 @@
 				IJavadocCompletionProcessor curr= processors[i];
 				IJavaCompletionProposal[] proposals= curr.computeCompletionProposals(cu, offset, length, javaContext.getFlags());
 				if (proposals != null) {
-					for (int k= 0; k < proposals.length; k++) {
-						result.add(proposals[k]);
-					}
+					result.addAll(Arrays.asList(proposals));
 				}
 			}
 			return result;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/spelling/engine/AbstractSpellDictionary.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/spelling/engine/AbstractSpellDictionary.java
index e883649..cdbe798 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/spelling/engine/AbstractSpellDictionary.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/spelling/engine/AbstractSpellDictionary.java
@@ -430,8 +430,7 @@
 		characters= word.toCharArray();
 		final char[] deleted= new char[characters.length - 1];
 
-		for (int index= 0; index < deleted.length; index++)
-			deleted[index]= characters[index];
+		System.arraycopy(characters, 0, deleted, 0, deleted.length);
 
 		next= characters[characters.length - 1];
 		offset= deleted.length;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/MethodsContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/MethodsContentProvider.java
index 47f0836..3711fc4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/MethodsContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/MethodsContentProvider.java
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.ui.typehierarchy;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 import org.eclipse.core.runtime.Assert;
@@ -77,9 +78,7 @@
 
 	private void addAll(Object[] arr, List<Object> res) {
 		if (arr != null) {
-			for (int j= 0; j < arr.length; j++) {
-				res.add(arr[j]);
-			}
+			res.addAll(Arrays.asList(arr));
 		}
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/SubTypeHierarchyViewer.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/SubTypeHierarchyViewer.java
index 9c77fde..61089d0 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/SubTypeHierarchyViewer.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/SubTypeHierarchyViewer.java
@@ -13,6 +13,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.ui.typehierarchy;
 
+import java.util.Arrays;
 import java.util.List;
 
 import org.eclipse.swt.widgets.Composite;
@@ -70,9 +71,7 @@
 						}
 					}
 				} else {
-					for (int i= 0; i < types.length; i++) {
-						res.add(types[i]);
-					}
+					res.addAll(Arrays.asList(types));
 				}
 			}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/SuperTypeHierarchyViewer.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/SuperTypeHierarchyViewer.java
index 6765aab..c29336f 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/SuperTypeHierarchyViewer.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/SuperTypeHierarchyViewer.java
@@ -13,6 +13,7 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.ui.typehierarchy;
 
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 
@@ -73,9 +74,7 @@
 			ITypeHierarchy hierarchy= getHierarchy();
 			if (hierarchy != null) {
 				IType[] types= hierarchy.getSupertypes(type);
-				for (int i= 0; i < types.length; i++) {
-					res.add(types[i]);
-				}
+				res.addAll(Arrays.asList(types));
 			}
 		}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/TraditionalHierarchyViewer.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/TraditionalHierarchyViewer.java
index e95abcd..f82cec3 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/TraditionalHierarchyViewer.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/TraditionalHierarchyViewer.java
@@ -94,13 +94,9 @@
 				IType input= hierarchy.getType();
 				if (input == null) {
 					IType[] classes= hierarchy.getRootClasses();
-					for (int i= 0; i < classes.length; i++) {
-						res.add(classes[i]);
-					}
+					res.addAll(Arrays.asList(classes));
 					IType[] interfaces= hierarchy.getRootInterfaces();
-					for (int i= 0; i < interfaces.length; i++) {
-						res.add(interfaces[i]);
-					}
+					res.addAll(Arrays.asList(interfaces));
 				} else {
 					if (Flags.isInterface(hierarchy.getCachedFlags(input))) {
 						res.add(input);
@@ -139,9 +135,7 @@
 					boolean isHierarchyOnType= (hierarchy.getType() != null);
 					boolean isClass= !Flags.isInterface(hierarchy.getCachedFlags(type));
 					if (isClass || isHierarchyOnType) {
-						for (int i= 0; i < types.length; i++) {
-							res.add(types[i]);
-						}
+						res.addAll(Arrays.asList(types));
 					} else {
 						for (int i= 0; i < types.length; i++) {
 							IType curr= types[i];
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/TypeHierarchyViewPart.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/TypeHierarchyViewPart.java
index f3f75fb..f65c9b0 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/TypeHierarchyViewPart.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/TypeHierarchyViewPart.java
@@ -1014,9 +1014,7 @@
 		// selection provider
 		int nHierarchyViewers= fAllViewers.length;
 		StructuredViewer[] trackedViewers= new StructuredViewer[nHierarchyViewers + 1];
-		for (int i= 0; i < nHierarchyViewers; i++) {
-			trackedViewers[i]= fAllViewers[i];
-		}
+		System.arraycopy(fAllViewers, 0, trackedViewers, 0, nHierarchyViewers);
 		trackedViewers[nHierarchyViewers]= fMethodsViewer;
 		fSelectionProviderMediator= new SelectionProviderMediator(trackedViewers, getCurrentViewer());
 		IStatusLineManager slManager= getViewSite().getActionBars().getStatusLineManager();
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/util/JavadocHelpContext.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/util/JavadocHelpContext.java
index c5808df..4825720 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/util/JavadocHelpContext.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/util/JavadocHelpContext.java
@@ -21,6 +21,7 @@
 import java.util.List;
 
 import com.ibm.icu.text.BreakIterator;
+import java.util.Arrays;
 
 import org.eclipse.help.HelpSystem;
 import org.eclipse.help.IContext;
@@ -149,9 +150,7 @@
 		if (context != null) {
 			IHelpResource[] resources= context.getRelatedTopics();
 			if (resources != null) {
-				for (int j= 0; j < resources.length; j++) {
-					helpResources.add(resources[j]);
-				}
+				helpResources.addAll(Arrays.asList(resources));
 			}
 		}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/AccessRulesDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/AccessRulesDialog.java
index 261bcaa..a7f0eda 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/AccessRulesDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/AccessRulesDialog.java
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.ui.wizards.buildpaths;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 
@@ -132,9 +133,7 @@
 
 		IAccessRule[] rules= (IAccessRule[]) entryToEdit.getAttribute(CPListElement.ACCESSRULES);
 		ArrayList<IAccessRule> elements= new ArrayList<>(rules.length);
-		for (int i= 0; i < rules.length; i++) {
-			elements.add(rules[i]);
-		}
+		elements.addAll(Arrays.asList(rules));
 		patternList.setElements(elements);
 		patternList.selectFirstElement();
 		return patternList;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/AddSourceFolderWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/AddSourceFolderWizardPage.java
index 72d2ea8..48575ba 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/AddSourceFolderWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/AddSourceFolderWizardPage.java
@@ -243,18 +243,14 @@
 			IPath[] exlusions= (IPath[])element.getAttribute(CPListElement.EXCLUSION);
 			if (exlusions != null) {
 				IPath[] save= new IPath[exlusions.length];
-				for (int i= 0; i < save.length; i++) {
-					save[i]= exlusions[i];
-				}
+				System.arraycopy(exlusions, 0, save, 0, save.length);
 				fOrginalExlusionFiltersCopy.put(element, save);
 				fOrginalExlusionFilters.put(element, exlusions);
 			}
 			IPath[] inclusions= (IPath[])element.getAttribute(CPListElement.INCLUSION);
 			if (inclusions != null) {
 				IPath[] save= new IPath[inclusions.length];
-				for (int i= 0; i < save.length; i++) {
-					save[i]= inclusions[i];
-				}
+				System.arraycopy(inclusions, 0, save, 0, save.length);
 				fOrginalInclusionFiltersCopy.put(element, save);
 				fOrginalInclusionFilters.put(element, inclusions);
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/CreateMultipleSourceFoldersDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/CreateMultipleSourceFoldersDialog.java
index 1e6e307..81e996f 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/CreateMultipleSourceFoldersDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/CreateMultipleSourceFoldersDialog.java
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.ui.wizards.buildpaths;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.Iterator;
@@ -90,9 +91,7 @@
 				return super.getChildren(element);
 
 			Object[] children= super.getChildren(element);
-			for (int i= 0; i < children.length; i++) {
-				result.add(children[i]);
-			}
+			result.addAll(Arrays.asList(children));
 			return result.toArray();
 		}
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/MultipleFolderSelectionDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/MultipleFolderSelectionDialog.java
index e6d986a..802d3fe 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/MultipleFolderSelectionDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/MultipleFolderSelectionDialog.java
@@ -14,6 +14,7 @@
 package org.eclipse.jdt.internal.ui.wizards.buildpaths;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -84,9 +85,7 @@
 
 	public void setExisting(Object[] existing) {
 		fExisting= new HashSet<>();
-		for (int i= 0; i < existing.length; i++) {
-			fExisting.add(existing[i]);
-		}
+		fExisting.addAll(Arrays.asList(existing));
 	}
 
 	/**
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetConfigurationDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetConfigurationDialog.java
index 5003340..5ada818 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetConfigurationDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/workingsets/WorkingSetConfigurationDialog.java
@@ -151,9 +151,7 @@
 		setTitle(WorkingSetMessages.WorkingSetConfigurationDialog_title);
 		setMessage(WorkingSetMessages.WorkingSetConfigurationDialog_message);
 		fAllWorkingSets= new ArrayList<>(allWorkingSets.length);
-		for (int i= 0; i < allWorkingSets.length; i++) {
-			fAllWorkingSets.add(allWorkingSets[i]);
-		}
+		fAllWorkingSets.addAll(Arrays.asList(allWorkingSets));
 		fIsSortingEnabled= isSortingEnabled;
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/StandardJavaElementContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/StandardJavaElementContentProvider.java
index 2e67ea2..4d2fcf9 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/StandardJavaElementContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/StandardJavaElementContentProvider.java
@@ -325,17 +325,13 @@
 			IPackageFragmentRoot root= roots[i];
 			if (isProjectPackageFragmentRoot(root)) {
 				Object[] fragments= getPackageFragmentRootContent(root);
-				for (int j= 0; j < fragments.length; j++) {
-					list.add(fragments[j]);
-				}
+				list.addAll(Arrays.asList(fragments));
 			} else {
 				list.add(root);
 			}
 		}
 		Object[] resources= project.getNonJavaResources();
-		for (int i= 0; i < resources.length; i++) {
-			list.add(resources[i]);
-		}
+		list.addAll(Arrays.asList(resources));
 		return list.toArray();
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/CustomFiltersActionGroup.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/CustomFiltersActionGroup.java
index 64a9387..8216b25 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/CustomFiltersActionGroup.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/CustomFiltersActionGroup.java
@@ -537,9 +537,7 @@
 		}
 
 		if (areUserDefinedPatternsEnabled()) {
-			for (int i= 0; i < fUserDefinedPatterns.length; i++) {
-				patterns.add(fUserDefinedPatterns[i]);
-			}
+			patterns.addAll(Arrays.asList(fUserDefinedPatterns));
 		}
 		if (!patternChange) { // no pattern change so far, test if the user patterns made a difference
 			patternChange= hasChanges(patterns, fPreviousPatterns);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/OpenTypeHierarchyAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/OpenTypeHierarchyAction.java
index 3cd08e1..aac99bc 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/OpenTypeHierarchyAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/OpenTypeHierarchyAction.java
@@ -219,9 +219,7 @@
 				IPackageFragment[] fragments= ((LogicalPackage)input).getFragments();
 				if (fragments.length == 0)
 					continue;
-				for (int j= 0; j < fragments.length; j++) {
-					validElements.add(fragments[j]);
-				}
+				validElements.addAll(Arrays.asList(fragments));
 			} else if (input instanceof IPackageFragment) {
 				IPackageFragment fragment= (IPackageFragment)input;
 				IPackageFragmentRoot[] roots;
diff --git a/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring/participants/ProcessorBasedRefactoring.java b/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring/participants/ProcessorBasedRefactoring.java
index 21f391e..adf7477 100644
--- a/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring/participants/ProcessorBasedRefactoring.java
+++ b/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring/participants/ProcessorBasedRefactoring.java
@@ -16,6 +16,7 @@
 package org.eclipse.ltk.core.refactoring.participants;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -236,9 +237,7 @@
 			fParticipants= EMPTY_PARTICIPANTS;
 		} else {
 			fParticipants= new ArrayList<>();
-			for (RefactoringParticipant loadedParticipant : loadedParticipants) {
-				fParticipants.add(loadedParticipant);
-			}
+			fParticipants.addAll(Arrays.asList(loadedParticipants));
 		}
 		if (result.hasFatalError()) {
 			pm.done();
diff --git a/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/history/RefactoringHistoryManager.java b/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/history/RefactoringHistoryManager.java
index 3b396f3..e294eac 100644
--- a/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/history/RefactoringHistoryManager.java
+++ b/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/history/RefactoringHistoryManager.java
@@ -214,9 +214,7 @@
 			if (!info.isDirectory() && info.exists() && store.getName().equalsIgnoreCase(RefactoringHistoryService.NAME_INDEX_FILE)) {
 				try (InputStream stream= store.openInputStream(EFS.NONE, new SubProgressMonitor(monitor, 1, SubProgressMonitor.SUPPRESS_SUBTASK_LABEL))) {
 					final RefactoringDescriptorProxy[] proxies= readRefactoringDescriptorProxies(stream, project, start, end);
-					for (RefactoringDescriptorProxy proxy : proxies) {
-						collection.add(proxy);
-					}
+					collection.addAll(Arrays.asList(proxies));
 					monitor.worked(1);
 				} catch (IOException exception) {
 					throw createCoreException(exception);
diff --git a/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/history/RefactoringHistoryService.java b/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/history/RefactoringHistoryService.java
index bb7b4ea..2be1d4a 100644
--- a/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/history/RefactoringHistoryService.java
+++ b/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/history/RefactoringHistoryService.java
@@ -687,9 +687,7 @@
 				for (IProject project : projects) {
 					if (project.isAccessible()) {
 						final RefactoringDescriptorProxy[] proxies= getProjectHistory(project, start, end, RefactoringDescriptor.NONE, new SubProgressMonitor(monitor, 3)).getDescriptors();
-						for (RefactoringDescriptorProxy proxy : proxies) {
-							set.add(proxy);
-						}
+						set.addAll(Arrays.asList(proxies));
 					}
 				}
 			}
diff --git a/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/resource/ResourceProcessors.java b/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/resource/ResourceProcessors.java
index addd874..d8bd1cd 100644
--- a/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/resource/ResourceProcessors.java
+++ b/org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/internal/core/refactoring/resource/ResourceProcessors.java
@@ -13,6 +13,7 @@
  *******************************************************************************/
 package org.eclipse.ltk.internal.core.refactoring.resource;
 
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -46,9 +47,7 @@
 		if (visitedProjects.contains(focus))
 			return;
 		String[] pns= focus.getDescription().getNatureIds();
-		for (String pn : pns) {
-			result.add(pn);
-		}
+		result.addAll(Arrays.asList(pns));
 		visitedProjects.add(focus);
 		IProject[] referencing= focus.getReferencingProjects();
 		for (IProject r : referencing) {
diff --git a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/RefactoringLocationControl.java b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/RefactoringLocationControl.java
index 72594a6..bf5acee 100644
--- a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/RefactoringLocationControl.java
+++ b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/RefactoringLocationControl.java
@@ -13,6 +13,7 @@
  *******************************************************************************/
 package org.eclipse.ltk.internal.ui.refactoring;
 
+import java.util.Arrays;
 import java.util.LinkedList;
 
 import org.eclipse.swt.SWT;
@@ -128,8 +129,7 @@
 		if (settings != null) {
 			final LinkedList<String> locations= new LinkedList<>();
 			final String[] items= fCombo.getItems();
-			for (int index= 0; index < items.length; index++)
-				locations.add(items[index]);
+			locations.addAll(Arrays.asList(items));
 			final String text= fCombo.getText().trim();
 			if (!"".equals(text)) { //$NON-NLS-1$
 				locations.remove(text);
diff --git a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/actions/AbstractResourcesHandler.java b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/actions/AbstractResourcesHandler.java
index 7650ac1..5c55a84 100644
--- a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/actions/AbstractResourcesHandler.java
+++ b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/actions/AbstractResourcesHandler.java
@@ -14,6 +14,7 @@
 package org.eclipse.ltk.internal.ui.refactoring.actions;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
@@ -66,9 +67,7 @@
 						for (int i= 0; i < traversals.length; i++) {
 							IResource[] traversalResources= traversals[i].getResources();
 							if (traversalResources != null) {
-								for (int j= 0; j < traversalResources.length; j++) {
-									resources.add(traversalResources[j]);
-								}// for
+								resources.addAll(Arrays.asList(traversalResources)); // for
 							}// if
 						}// for
 					}// if
diff --git a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/model/RefactoringHistoryMerger.java b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/model/RefactoringHistoryMerger.java
index c06a905..abafa7d 100644
--- a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/model/RefactoringHistoryMerger.java
+++ b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/model/RefactoringHistoryMerger.java
@@ -16,6 +16,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -100,10 +101,8 @@
 		final DefaultRefactoringDescriptor[] sourceDescriptors= RefactoringHistoryManager.readRefactoringDescriptors(source);
 		final DefaultRefactoringDescriptor[] targetDescriptors= RefactoringHistoryManager.readRefactoringDescriptors(target);
 		final Set<DefaultRefactoringDescriptor> set= new HashSet<>();
-		for (int index= 0; index < sourceDescriptors.length; index++)
-			set.add(sourceDescriptors[index]);
-		for (int index= 0; index < targetDescriptors.length; index++)
-			set.add(targetDescriptors[index]);
+		set.addAll(Arrays.asList(sourceDescriptors));
+		set.addAll(Arrays.asList(targetDescriptors));
 		final RefactoringDescriptor[] outputDescriptors= new RefactoringDescriptor[set.size()];
 		set.toArray(outputDescriptors);
 		RefactoringHistoryManager.sortRefactoringDescriptorsAscending(outputDescriptors);
diff --git a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/model/RefactoringIndexMerger.java b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/model/RefactoringIndexMerger.java
index 238aac6..16eba7d 100644
--- a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/model/RefactoringIndexMerger.java
+++ b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/model/RefactoringIndexMerger.java
@@ -17,6 +17,7 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -104,10 +105,8 @@
 		final RefactoringDescriptorProxy[] sourceProxies= RefactoringHistoryManager.readRefactoringDescriptorProxies(source, null, 0, Long.MAX_VALUE);
 		final RefactoringDescriptorProxy[] targetProxies= RefactoringHistoryManager.readRefactoringDescriptorProxies(target, null, 0, Long.MAX_VALUE);
 		final Set<RefactoringDescriptorProxy> set= new HashSet<>();
-		for (int index= 0; index < sourceProxies.length; index++)
-			set.add(sourceProxies[index]);
-		for (int index= 0; index < targetProxies.length; index++)
-			set.add(targetProxies[index]);
+		set.addAll(Arrays.asList(sourceProxies));
+		set.addAll(Arrays.asList(targetProxies));
 		RefactoringHistoryManager.writeRefactoringDescriptorProxies(output, set.toArray(new RefactoringDescriptorProxy[set.size()]));
 	}
 }
diff --git a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/scripting/CreateRefactoringScriptWizard.java b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/scripting/CreateRefactoringScriptWizard.java
index 77e59be..5aff561 100644
--- a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/scripting/CreateRefactoringScriptWizard.java
+++ b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/internal/ui/refactoring/scripting/CreateRefactoringScriptWizard.java
@@ -26,6 +26,7 @@
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.InvocationTargetException;
 import java.net.URI;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -143,10 +144,8 @@
 						stream= new BufferedInputStream(new FileInputStream(file));
 						final RefactoringDescriptorProxy[] existing= RefactoringCore.getHistoryService().readRefactoringHistory(stream, RefactoringDescriptor.NONE).getDescriptors();
 						final Set<RefactoringDescriptorProxy> set= new HashSet<>();
-						for (int index= 0; index < existing.length; index++)
-							set.add(existing[index]);
-						for (int index= 0; index < fRefactoringDescriptors.length; index++)
-							set.add(fRefactoringDescriptors[index]);
+						set.addAll(Arrays.asList(existing));
+						set.addAll(Arrays.asList(fRefactoringDescriptors));
 						writable= new RefactoringDescriptorProxy[set.size()];
 						set.toArray(writable);
 					} catch (FileNotFoundException exception) {
diff --git a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/ui/refactoring/model/AbstractResourceMappingMerger.java b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/ui/refactoring/model/AbstractResourceMappingMerger.java
index 58c3bfa..a62d8e7 100644
--- a/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/ui/refactoring/model/AbstractResourceMappingMerger.java
+++ b/org.eclipse.ltk.ui.refactoring/src/org/eclipse/ltk/ui/refactoring/model/AbstractResourceMappingMerger.java
@@ -15,6 +15,7 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -296,8 +297,7 @@
 		final Set<IDiff> set= new HashSet<>();
 		for (int index= 0; index < mappings.length; index++) {
 			final IDiff[] diffs= context.getDiffTree().getDiffs(context.getScope().getTraversals(mappings[index]));
-			for (int offset= 0; offset < diffs.length; offset++)
-				set.add(diffs[offset]);
+			set.addAll(Arrays.asList(diffs));
 		}
 		return set.toArray(new IDiff[set.size()]);
 	}