Bug 548309 - Use jdk 5 for-each loop (org.eclipse.jdt.ui)

org.eclipse.jdt.internal.ui.actions
to
org.eclipse.jdt.internal.ui.javadocexport
Replace simple uses of Iterator with a corresponding for-loop. Also add
missing braces on loops as necessary.
Includes bugfix (?) see inline comment

Change-Id: If7ec475a6ec402da63c7b4e18b0c16d9f18bb3e9
Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de>
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/ActionUtil.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/ActionUtil.java
index 2cd1a23..2a2470c 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/ActionUtil.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/ActionUtil.java
@@ -112,11 +112,9 @@
 	}
 
 	public static boolean areProcessable(Shell shell, IJavaElement[] elements) {
-		for (int i= 0; i < elements.length; i++) {
-			if (! isOnBuildPath(elements[i])) {
-				MessageDialog.openInformation(shell,
-						ActionMessages.ActionUtil_notOnBuildPath_title,
-						Messages.format(ActionMessages.ActionUtil_notOnBuildPath_resource_message, new Object[] {BasicElementLabels.getPathLabel(elements[i].getPath(), false)}));
+		for (IJavaElement element : elements) {
+			if (!isOnBuildPath(element)) {
+				MessageDialog.openInformation(shell, ActionMessages.ActionUtil_notOnBuildPath_title, Messages.format(ActionMessages.ActionUtil_notOnBuildPath_resource_message, new Object[]{BasicElementLabels.getPathLabel(element.getPath(), false)}));
 				return false;
 			}
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/BlockCommentAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/BlockCommentAction.java
index 56e8f26..99dcdfb 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/BlockCommentAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/BlockCommentAction.java
@@ -13,7 +13,6 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.ui.actions;
 
-import java.util.Iterator;
 import java.util.List;
 import java.util.ResourceBundle;
 
@@ -238,8 +237,7 @@
 	 * @throws BadLocationException if an <code>Edit</code> threw such an exception.
 	 */
 	protected void executeEdits(List<Edit> edits) throws BadLocationException {
-		for (Iterator<Edit> it= edits.iterator(); it.hasNext();) {
-			Edit edit= it.next();
+		for (Edit edit : edits) {
 			edit.perform();
 		}
 	}
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 c4d927c..f9866d4 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
@@ -83,9 +83,10 @@
 					if (categories.length == 0)
 						return !fFilterUncategorizedMembers;
 
-					for (int i= 0; i < categories.length; i++) {
-						if (!fFilteredCategories.contains(categories[i]))
+					for (String category : categories) {
+						if (!fFilteredCategories.contains(category)) {
 							return true;
+						}
 					}
 					return false;
 				} catch (JavaModelException e) {
@@ -132,8 +133,7 @@
 			fCategoryList.setViewerComparator(new ViewerComparator());
 			fCategoryList.setLabelText(ActionMessages.CategoryFilterActionGroup_SelectCategoriesDescription);
 			fCategoryList.checkAll(true);
-			for (Iterator<String> iter= selectedCategories.iterator(); iter.hasNext();) {
-				String selected= iter.next();
+			for (String selected : selectedCategories) {
 				fCategoryList.setChecked(selected, false);
 			}
 			if (categories.size() == 0) {
@@ -367,8 +367,7 @@
 	private void updateMenu(IMenuManager manager) {
 		IContributionItem[] items= manager.getItems();
 		if (items != null) {
-			for (int i= 0; i < items.length; i++) {
-				IContributionItem item= items[i];
+			for (IContributionItem item : items) {
 				if (item != null && item.getId() != null && item.getId().equals(FILTER_CATEGORY_ACTION_ID)) {
 					IContributionItem removed= manager.remove(item);
 					if (removed != null) {
@@ -385,8 +384,7 @@
 			manager.appendToGroup(CATEGORY_MENU_GROUP_NAME, new FilterUncategorizedMembersAction());
 
 		int count= 0;
-		for (Iterator<String> iter= menuEntries.iterator(); iter.hasNext();) {
-			String category= iter.next();
+		for (String category : menuEntries) {
 			manager.appendToGroup(CATEGORY_MENU_GROUP_NAME, new CategoryFilterAction(category, count + 1));
 			count++;
 		}
@@ -401,8 +399,7 @@
 				@Override
 				public boolean accept(String[] cats) {
 					if (cats.length > 0) {
-						for (int j= 0; j < cats.length; j++) {
-							String category= cats[j];
+						for (String category : cats) {
 							categories.add(category);
 							if (fLRUList.containsKey(category)) {
 								foundLRUCategories.add(category);
@@ -416,8 +413,7 @@
 			});
 		}
 		int count= 0;
-		for (Iterator<String> iter= foundLRUCategories.iterator(); iter.hasNext();) {
-			String element= iter.next();
+		for (String element : foundLRUCategories) {
 			result.add(element);
 			count++;
 		}
@@ -462,9 +458,10 @@
 	}
 
 	private boolean processChildren(IJavaElement[] children, IResultCollector collector) {
-		for (int i= 0; i < children.length; i++) {
-			if (collectCategories(children[i], collector))
+		for (IJavaElement child : children) {
+			if (collectCategories(child, collector)) {
 				return true;
+			}
 		}
 		return false;
 	}
@@ -486,8 +483,8 @@
 
 	private void showCategorySelectionDialog(IJavaElement[] input) {
 		final HashSet<String> categories= new HashSet<>();
-		for (int i= 0; i < input.length; i++) {
-			collectCategories(input[i], new IResultCollector() {
+		for (IJavaElement i : input) {
+			collectCategories(i, new IResultCollector() {
 				@Override
 				public boolean accept(String[] cats) {
 					categories.addAll(Arrays.asList(cats));
@@ -498,8 +495,7 @@
 		CategoryFilterSelectionDialog dialog= new CategoryFilterSelectionDialog(fViewer.getControl().getShell(), new ArrayList<>(categories), new ArrayList<>(fFilteredCategories));
 		if (dialog.open() == Window.OK) {
 			Object[] selected= dialog.getResult();
-			for (Iterator<String> iter= categories.iterator(); iter.hasNext();) {
-				String category= iter.next();
+			for (String category : categories) {
 				if (contains(selected, category)) {
 					if (fFilteredCategories.remove(category))
 						fLRUList.put(category, category);
@@ -514,9 +510,10 @@
 	}
 
 	private boolean contains(Object[] selected, String category) {
-		for (int i= 0; i < selected.length; i++) {
-			if (selected[i].equals(category))
+		for (Object s : selected) {
+			if (s.equals(category)) {
 				return true;
+			}
 		}
 		return false;
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CleanUpAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CleanUpAction.java
index a8c245d..64ca133 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CleanUpAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CleanUpAction.java
@@ -126,10 +126,10 @@
 
 	private boolean isEnabled(IStructuredSelection selection) {
 		Object[] selected= selection.toArray();
-		for (int i= 0; i < selected.length; i++) {
+		for (Object s : selected) {
 			try {
-				if (selected[i] instanceof IJavaElement) {
-					IJavaElement elem= (IJavaElement)selected[i];
+				if (s instanceof IJavaElement) {
+					IJavaElement elem= (IJavaElement) s;
 					if (elem.exists()) {
 						switch (elem.getElementType()) {
 							case IJavaElement.TYPE:
@@ -147,13 +147,13 @@
 								return true;
 						}
 					}
-				} else if (selected[i] instanceof LogicalPackage) {
+				} else if (s instanceof LogicalPackage) {
 					return true;
-				} else if (selected[i] instanceof IWorkingSet) {
-					IWorkingSet workingSet= (IWorkingSet) selected[i];
+				} else if (s instanceof IWorkingSet) {
+					IWorkingSet workingSet= (IWorkingSet) s;
 					return IWorkingSetIDs.JAVA.equals(workingSet.getId());
 				}
-			} catch (JavaModelException e) {
+			}catch (JavaModelException e) {
 				if (!e.isDoesNotExist()) {
 					JavaPlugin.log(e);
 				}
@@ -192,9 +192,7 @@
 			return;
 
 		MultiStatus status= new MultiStatus(JavaUI.ID_PLUGIN, IStatus.OK, ActionMessages.CleanUpAction_MultiStateErrorTitle, null);
-		for (int i= 0; i < cus.length; i++) {
-			ICompilationUnit cu= cus[i];
-
+		for (ICompilationUnit cu : cus) {
 			if (!ActionUtil.isOnBuildPath(cu)) {
 				String cuLocation= BasicElementLabels.getPathLabel(cu.getPath(), false);
 				String message= Messages.format(ActionMessages.CleanUpAction_CUNotOnBuildpathMessage, cuLocation);
@@ -224,8 +222,7 @@
 	public ICompilationUnit[] getCompilationUnits(IStructuredSelection selection) {
 		HashSet<IJavaElement> result= new HashSet<>();
 		Object[] selected= selection.toArray();
-		for (int i= 0; i < selected.length; i++) {
-			Object element= selected[i];
+		for (Object element : selected) {
 			collectCompilationUnits(element, result);
 		}
 		return result.toArray(new ICompilationUnit[result.size()]);
@@ -256,16 +253,15 @@
 							break;
 						case IJavaElement.JAVA_PROJECT:
 							IPackageFragmentRoot[] roots= ((IJavaProject)elem).getPackageFragmentRoots();
-							for (int k= 0; k < roots.length; k++) {
-								collectCompilationUnits(roots[k], result);
+							for (IPackageFragmentRoot root : roots) {
+								collectCompilationUnits(root, result);
 							}
 							break;
 					}
 				}
 			} else if (element instanceof LogicalPackage) {
 				IPackageFragment[] packageFragments= ((LogicalPackage)element).getFragments();
-				for (int k= 0; k < packageFragments.length; k++) {
-					IPackageFragment pack= packageFragments[k];
+				for (IPackageFragment pack : packageFragments) {
 					if (pack.exists()) {
 						collectCompilationUnits(pack, result);
 					}
@@ -273,8 +269,8 @@
 			} else if (element instanceof IWorkingSet) {
 				IWorkingSet workingSet= (IWorkingSet) element;
 				IAdaptable[] elements= workingSet.getElements();
-				for (int j= 0; j < elements.length; j++) {
-					collectCompilationUnits(elements[j], result);
+				for (IAdaptable e : elements) {
+					collectCompilationUnits(e, result);
 				}
 			}
 		} catch (JavaModelException e) {
@@ -290,8 +286,8 @@
 	private void collectCompilationUnits(IPackageFragmentRoot root, Collection<IJavaElement> result) throws JavaModelException {
 		if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
 			IJavaElement[] children= root.getChildren();
-			for (int i= 0; i < children.length; i++) {
-				collectCompilationUnits((IPackageFragment)children[i], result);
+			for (IJavaElement child : children) {
+				collectCompilationUnits((IPackageFragment) child, result);
 			}
 		}
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CompositeActionGroup.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CompositeActionGroup.java
index dcc82d0..d954e06 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CompositeActionGroup.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CompositeActionGroup.java
@@ -54,8 +54,8 @@
 		super.dispose();
 		if (fGroups == null)
 			return;
-		for (int i= 0; i < fGroups.length; i++) {
-			fGroups[i].dispose();
+		for (ActionGroup group : fGroups) {
+			group.dispose();
 		}
 	}
 
@@ -64,8 +64,8 @@
 		super.fillActionBars(actionBars);
 		if (fGroups == null)
 			return;
-		for (int i= 0; i < fGroups.length; i++) {
-			fGroups[i].fillActionBars(actionBars);
+		for (ActionGroup group : fGroups) {
+			group.fillActionBars(actionBars);
 		}
 	}
 
@@ -74,8 +74,8 @@
 		super.fillContextMenu(menu);
 		if (fGroups == null)
 			return;
-		for (int i= 0; i < fGroups.length; i++) {
-			fGroups[i].fillContextMenu(menu);
+		for (ActionGroup group : fGroups) {
+			group.fillContextMenu(menu);
 		}
 	}
 
@@ -84,8 +84,8 @@
 		super.setContext(context);
 		if (fGroups == null)
 			return;
-		for (int i= 0; i < fGroups.length; i++) {
-			fGroups[i].setContext(context);
+		for (ActionGroup group : fGroups) {
+			group.setContext(context);
 		}
 	}
 
@@ -94,8 +94,8 @@
 		super.updateActionBars();
 		if (fGroups == null)
 			return;
-		for (int i= 0; i < fGroups.length; i++) {
-			fGroups[i].updateActionBars();
+		for (ActionGroup group : fGroups) {
+			group.updateActionBars();
 		}
 	}
 }
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CopyQualifiedNameAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CopyQualifiedNameAction.java
index 3d19107..3c0f2c0 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CopyQualifiedNameAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/CopyQualifiedNameAction.java
@@ -130,8 +130,7 @@
 	}
 
 	private boolean canEnable(Object[] objects) {
-		for (int i= 0; i < objects.length; i++) {
-			Object element= objects[i];
+		for (Object element : objects) {
 			if (isValidElement(element))
 				return true;
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/FindBrokenNLSKeysAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/FindBrokenNLSKeysAction.java
index 3c6f4c6..62909e0 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/FindBrokenNLSKeysAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/FindBrokenNLSKeysAction.java
@@ -156,8 +156,7 @@
 	private void run(SearchPatternData[] data, String scope) {
 		List<IType> wrappers= new ArrayList<>();
 		List<IFile> properties= new ArrayList<>();
-		for (int i= 0; i < data.length; i++) {
-			SearchPatternData current= data[i];
+		for (SearchPatternData current : data) {
 			if (current.getWrapperClass() != null || current.getPropertyFile() != null) {
 				wrappers.add(current.getWrapperClass());
 				properties.add(current.getPropertyFile());
@@ -196,10 +195,10 @@
 
 	private boolean canEnable(IStructuredSelection selection) {
 		Object[] selected= selection.toArray();
-		for (int i= 0; i < selected.length; i++) {
+		for (Object s : selected) {
 			try {
-				if (selected[i] instanceof IJavaElement) {
-					IJavaElement elem= (IJavaElement) selected[i];
+				if (s instanceof IJavaElement) {
+					IJavaElement elem= (IJavaElement) s;
 					if (elem.exists()) {
 						switch (elem.getElementType()) {
 							case IJavaElement.TYPE:
@@ -219,17 +218,17 @@
 								return true;
 						}
 					}
-				} else if (selected[i] instanceof LogicalPackage) {
+				} else if (s instanceof LogicalPackage) {
 					return true;
-				} else if (selected[i] instanceof IFile) {
-					IFile file= (IFile)selected[i];
+				} else if (s instanceof IFile) {
+					IFile file= (IFile) s;
 					if ("properties".equalsIgnoreCase(file.getFileExtension())) //$NON-NLS-1$
 						return true;
-				} else if (selected[i] instanceof IWorkingSet) {
-					IWorkingSet workingSet= (IWorkingSet) selected[i];
+				} else if (s instanceof IWorkingSet) {
+					IWorkingSet workingSet= (IWorkingSet) s;
 					return IWorkingSetIDs.JAVA.equals(workingSet.getId());
 				}
-			} catch (JavaModelException e) {
+			}catch (JavaModelException e) {
 				if (!e.isDoesNotExist()) {
 					JavaPlugin.log(e);
 				}
@@ -240,9 +239,7 @@
 
 	private void collectNLSFilesFromResources(Object[] objects, HashMap<IType, SearchPatternData> result) {
 		try {
-			for (int i= 0; i < objects.length; i++) {
-				Object object= objects[i];
-
+			for (Object object : objects) {
 				IResource resource= null;
 				if (object instanceof IWorkingSet) {
 					IWorkingSet workingSet= (IWorkingSet) object;
@@ -276,9 +273,9 @@
 
 	private void collectNLSFilesFromJavaElements(Object[] objects, HashMap<IType, SearchPatternData> result) {
 		try {
-			for (int i= 0; i < objects.length; i++) {
-				if (objects[i] instanceof IJavaElement) {
-					IJavaElement elem= (IJavaElement) objects[i];
+			for (Object object : objects) {
+				if (object instanceof IJavaElement) {
+					IJavaElement elem= (IJavaElement) object;
 					if (elem.exists()) {
 						switch (elem.getElementType()) {
 							case IJavaElement.TYPE:
@@ -317,8 +314,7 @@
 							{
 								IJavaProject javaProject= (IJavaProject)elem;
 								IPackageFragmentRoot[] allPackageFragmentRoots= javaProject.getAllPackageFragmentRoots();
-								for (int j= 0; j < allPackageFragmentRoots.length; j++) {
-									IPackageFragmentRoot root= allPackageFragmentRoots[j];
+								for (IPackageFragmentRoot root : allPackageFragmentRoots) {
 									if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
 										if (javaProject.equals(root.getJavaProject())) {
 											collectNLSFilesFromJavaElements(new Object[] {root}, result);
@@ -329,11 +325,11 @@
 							}
 						}
 					}
-				} else if (objects[i] instanceof LogicalPackage) {
-					LogicalPackage logicalPackage= (LogicalPackage)objects[i];
+				} else if (object instanceof LogicalPackage) {
+					LogicalPackage logicalPackage= (LogicalPackage) object;
 					collectNLSFilesFromJavaElements(new Object[] {logicalPackage.getJavaProject()}, result);
-				} else if (objects[i] instanceof IWorkingSet) {
-					IWorkingSet workingSet= (IWorkingSet) objects[i];
+				} else if (object instanceof IWorkingSet) {
+					IWorkingSet workingSet= (IWorkingSet) object;
 					collectNLSFilesFromJavaElements(workingSet.getElements(), result);
 				}
 			}
@@ -383,14 +379,13 @@
 
 		if (importsOSGIUtil(unit)) { //new school
 			IInitializer[] initializers= type.getInitializers();
-			for (int i= 0; i < initializers.length; i++) {
-				if (Modifier.isStatic(initializers[0].getFlags()))
+			for (IInitializer initializer : initializers) {
+				if (Modifier.isStatic(initializer.getFlags()))
 					return true;
 			}
 		} else { //old school
 			IMethod[] methods= type.getMethods();
-			for (int i= 0; i < methods.length; i++) {
-				IMethod method= methods[i];
+			for (IMethod method : methods) {
 				if (isValueAccessor(method))
 					return true;
 			}
@@ -400,10 +395,10 @@
 	}
 
 	private static boolean importsOSGIUtil(ICompilationUnit unit) throws JavaModelException {
-		IImportDeclaration[] imports= unit.getImports();
-		for (int i= 0; i < imports.length; i++) {
-			if (imports[i].getElementName().startsWith("org.eclipse.osgi.util.")) //$NON-NLS-1$
+		for (IImportDeclaration i : unit.getImports()) {
+			if (i.getElementName().startsWith("org.eclipse.osgi.util.")) { //$NON-NLS-1$
 				return true;
+			}
 		}
 
 		return false;
@@ -429,9 +424,10 @@
 	}
 
 	private static IField getBundleNameField(IField[] fields) {
-		for (int i= 0; i < fields.length; i++) {
-			if ("BUNDLE_NAME".equals(fields[i].getElementName())) //$NON-NLS-1$
-				return fields[i];
+		for (IField field : fields) {
+			if ("BUNDLE_NAME".equals(field.getElementName())) { //$NON-NLS-1$
+				return field;
+			}
 		}
 
 		return null;
@@ -448,9 +444,7 @@
 
 		IPath propertyFullPath= file.getFullPath();
 		// Try to find a corresponding CU
-		String[] javaExtensions= JavaCore.getJavaLikeExtensions();
-		for (int i= 0; i < javaExtensions.length; i++) {
-			String extension= javaExtensions[i];
+		for (String extension : JavaCore.getJavaLikeExtensions()) {
 			IPath cuPath= propertyFullPath.removeFileExtension().addFileExtension(extension);
 			IFile cuFile= (IFile)JavaPlugin.getWorkspace().getRoot().findMember(cuPath);
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/GenerateConstructorUsingFieldsSelectionDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/GenerateConstructorUsingFieldsSelectionDialog.java
index 327854f..52bd773 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/GenerateConstructorUsingFieldsSelectionDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/GenerateConstructorUsingFieldsSelectionDialog.java
@@ -138,8 +138,8 @@
 		BindingLabelProvider provider= new BindingLabelProvider();
 		final Combo combo= new Combo(composite, SWT.READ_ONLY);
 		SWTUtil.setDefaultVisibleItemCount(combo);
-		for (int i= 0; i < fSuperConstructors.length; i++) {
-			combo.add(provider.getText(fSuperConstructors[i]));
+		for (IMethodBinding binding : fSuperConstructors) {
+			combo.add(provider.getText(binding));
 		}
 
 		// TODO: Can we be a little more intelligent about guessing the super() ?
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/GenerateConstructorUsingFieldsValidator.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/GenerateConstructorUsingFieldsValidator.java
index ccb8a3e..a873539 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/GenerateConstructorUsingFieldsValidator.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/GenerateConstructorUsingFieldsValidator.java
@@ -52,31 +52,33 @@
 
 	private int countSelectedFields(Object[] selection) {
 		int count= 0;
-		for (int index= 0; index < selection.length; index++) {
-			if (selection[index] instanceof IVariableBinding)
+		for (Object s : selection) {
+			if (s instanceof IVariableBinding) {
 				count++;
+			}
 		}
 		return count;
 	}
 
 	private void createSignature(final IMethodBinding constructor, StringBuilder buffer, Object[] selection) {
-		ITypeBinding types[]= constructor.getParameterTypes();
-		for (int index= 0; index < types.length; index++)
-			buffer.append(types[index].getName());
+		for (ITypeBinding type : constructor.getParameterTypes()) {
+			buffer.append(type.getName());
+		}
 		if (selection != null) {
-			for (int index= 0; index < selection.length; index++)
-				if (selection[index] instanceof IVariableBinding)
-					buffer.append(((IVariableBinding) selection[index]).getType().getErasure().getName());
+			for (Object s : selection) {
+				if (s instanceof IVariableBinding) {
+					buffer.append(((IVariableBinding) s).getType().getErasure().getName());
+				}
+			}
 		}
 	}
 
 	private List<String> getExistingConstructorSignatures() {
 		List<String> existing= new ArrayList<>();
-		IMethodBinding[] methods= fType.getDeclaredMethods();
-		for (int index= 0; index < methods.length; index++) {
-			if (methods[index].isConstructor()) {
+		for (IMethodBinding method : fType.getDeclaredMethods()) {
+			if (method.isConstructor()) {
 				StringBuilder buffer= new StringBuilder();
-				createSignature(methods[index], buffer, null);
+				createSignature(method, buffer, null);
 				existing.add(buffer.toString());
 			}
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/MultiSortMembersAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/MultiSortMembersAction.java
index 64ceef4..ee32fe6 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/MultiSortMembersAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/MultiSortMembersAction.java
@@ -99,9 +99,10 @@
 	}
 
 	private boolean hasMembersToSort(ICompilationUnit[] units) throws JavaModelException {
-		for (int i= 0; i < units.length; i++) {
-			if (hasMembersToSort(units[i].getTypes()))
+		for (ICompilationUnit unit : units) {
+			if (hasMembersToSort(unit.getTypes())) {
 				return true;
+			}
 		}
 
 		return false;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/OccurrencesSearchMenuAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/OccurrencesSearchMenuAction.java
index deb310a..4b54299 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/OccurrencesSearchMenuAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/OccurrencesSearchMenuAction.java
@@ -91,9 +91,8 @@
 			@Override
 			public void menuShown(MenuEvent e) {
 				Menu m= (Menu) e.widget;
-				MenuItem[] items= m.getItems();
-				for (int i= 0; i < items.length; i++) {
-					items[i].dispose();
+				for (MenuItem item : m.getItems()) {
+					item.dispose();
 				}
 				fillMenu(m);
 			}
@@ -120,9 +119,9 @@
 
 	private void disposeSubmenuActions() {
 		if (fPartService != null && fRetargetActions != null) {
-			for (int i= 0; i < fRetargetActions.length; i++) {
-				fPartService.removePartListener(fRetargetActions[i]);
-				fRetargetActions[i].dispose();
+			for (RetargetAction action : fRetargetActions) {
+				fPartService.removePartListener(action);
+				action.dispose();
 			}
 		}
 		fRetargetActions= null;
@@ -171,8 +170,7 @@
 		}
 
 		final ArrayList<IAction> activeActions= new ArrayList<>(fRetargetActions.length);
-		for (int i= 0; i < fRetargetActions.length; i++) {
-			RetargetAction action= fRetargetActions[i];
+		for (RetargetAction action : fRetargetActions) {
 			IAction actionHandler= action.getActionHandler();
 			if (actionHandler instanceof SelectionDispatchAction) {
 				((SelectionDispatchAction) actionHandler).update(selection);
@@ -202,8 +200,7 @@
 		if (javaSelection == null)
 			return;
 
-		for (int i= 0; i < fRetargetActions.length; i++) {
-			RetargetAction action= fRetargetActions[i];
+		for (RetargetAction action : fRetargetActions) {
 			IAction actionHandler= action.getActionHandler();
 			if (actionHandler instanceof SelectionDispatchAction) {
 				((SelectionDispatchAction) actionHandler).update(javaSelection);
@@ -247,8 +244,8 @@
 	public void fillMenu(Menu menu) {
 		if (fRetargetActions != null) {
 			updateActions();
-			for (int i= 0; i < fRetargetActions.length; i++) {
-				ActionContributionItem item= new ActionContributionItem(fRetargetActions[i]);
+			for (RetargetAction fRetargetAction : fRetargetActions) {
+				ActionContributionItem item= new ActionContributionItem(fRetargetAction);
 				item.fill(menu, -1);
 			}
 		} else {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/OpenTypeAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/OpenTypeAction.java
index 47d4226..94b814e 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/OpenTypeAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/OpenTypeAction.java
@@ -106,8 +106,8 @@
 
 		MultiStatus multiStatus= new MultiStatus(JavaPlugin.getPluginId(), IJavaStatusConstants.INTERNAL_ERROR, JavaUIMessages.OpenTypeAction_multiStatusMessage, null);
 
-		for (int i= 0; i < types.length; i++) {
-			IType type= (IType)types[i];
+		for (Object t : types) {
+			IType type= (IType) t;
 			try {
 				JavaUI.openInEditor(type, true, true);
 			} catch (CoreException x) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/SelectAllAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/SelectAllAction.java
index e8570c4..3a053be 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/SelectAllAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/SelectAllAction.java
@@ -65,8 +65,7 @@
 	}
 
 	private void collectExpandedAndVisible(TreeItem[] items, List<TreeItem> result) {
-		for (int i= 0; i < items.length; i++) {
-			TreeItem item= items[i];
+		for (TreeItem item : items) {
 			if (item.getData() != null) {
 				result.add(item);
 				if (item.getExpanded()) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/SurroundWithTemplateMenuAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/SurroundWithTemplateMenuAction.java
index a469084..1fd734a 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/SurroundWithTemplateMenuAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/SurroundWithTemplateMenuAction.java
@@ -146,9 +146,7 @@
 		if (fMenu == null || fMenu.isDisposed()) {
 			return;
 		}
-		MenuItem[] items = fMenu.getItems();
-		for (int i=0; i < items.length; i++) {
-			MenuItem menuItem= items[i];
+		for (MenuItem menuItem : fMenu.getItems()) {
 			if (!menuItem.isDisposed()) {
 				menuItem.dispose();
 			}
@@ -289,8 +287,8 @@
 				templateGroup.fill(menu, -1);
 			}
 
-			for (int i= 0; i < actions.length; i++) {
-				ActionContributionItem item= new ActionContributionItem(actions[i]);
+			for (IAction action : actions) {
+				ActionContributionItem item= new ActionContributionItem(action);
 				item.fill(menu, -1);
 			}
 		}
@@ -308,9 +306,8 @@
 			@Override
 			public void menuShown(MenuEvent e) {
 				Menu m = (Menu)e.widget;
-				MenuItem[] items = m.getItems();
-				for (int i=0; i < items.length; i++) {
-					items[i].dispose();
+				for (MenuItem item : m.getItems()) {
+					item.dispose();
 				}
 				fillMenu(m);
 			}
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 891ceae..4182825 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
@@ -120,27 +120,30 @@
 			sourceRefs= fragment.getCompilationUnits();
 		}
 		else {
-			IOrdinaryClassFile[] classFiles= fragment.getOrdinaryClassFiles();
 			List<IOrdinaryClassFile> topLevelClassFile= new ArrayList<>();
-			for (int i= 0; i < classFiles.length; i++) {
-				IType type= classFiles[i].getType();
-				if (type != null && type.getDeclaringType() == null && !type.isAnonymous() && !type.isLocal())
-					topLevelClassFile.add(classFiles[i]);
+			for (IOrdinaryClassFile classFile : fragment.getOrdinaryClassFiles()) {
+				IType type= classFile.getType();
+				if (type != null && type.getDeclaringType() == null && !type.isAnonymous() && !type.isLocal()) {
+					topLevelClassFile.add(classFile);
+				}
 			}
 			sourceRefs= topLevelClassFile.toArray(new ISourceReference[topLevelClassFile.size()]);
 		}
 
 		Object[] result= new Object[0];
-		for (int i= 0; i < sourceRefs.length; i++)
-			result= concatenate(result, removeImportAndPackageDeclarations(getChildren(sourceRefs[i])));
+		for (ISourceReference sourceRef : sourceRefs) {
+			result= concatenate(result, removeImportAndPackageDeclarations(getChildren(sourceRef)));
+		}
 		return concatenate(result, fragment.getNonJavaResources());
 	}
 
 	private Object[] removeImportAndPackageDeclarations(Object[] members) {
 		ArrayList<Object> tempResult= new ArrayList<>(members.length);
-		for (int i= 0; i < members.length; i++)
-			if (!(members[i] instanceof IImportContainer) && !(members[i] instanceof IPackageDeclaration))
-				tempResult.add(members[i]);
+		for (Object member : members) {
+			if (!(member instanceof IImportContainer) && !(member instanceof IPackageDeclaration)) {
+				tempResult.add(member);
+			}
+		}
 		return tempResult.toArray();
 	}
 
@@ -157,9 +160,11 @@
 		// Add import declarations
 		IJavaElement[] members= parent.getChildren();
 		ArrayList<IJavaElement> tempResult= new ArrayList<>(members.length);
-		for (int i= 0; i < members.length; i++)
-			if ((members[i] instanceof IImportContainer))
-				tempResult.add(members[i]);
+		for (IJavaElement member : members) {
+			if (member instanceof IImportContainer) {
+				tempResult.add(member);
+			}
+		}
 		tempResult.addAll(Arrays.asList(type.getChildren()));
 		return tempResult.toArray();
 	}
@@ -173,8 +178,7 @@
 		List<IJavaElement> list= new ArrayList<>(roots.length);
 		// filter out package fragments that correspond to projects and
 		// replace them with the package fragments directly
-		for (int i= 0; i < roots.length; i++) {
-			IPackageFragmentRoot root= roots[i];
+		for (IPackageFragmentRoot root : roots) {
 			if (!root.isExternal()) {
 				IJavaElement[] children= root.getChildren();
 				list.addAll(Arrays.asList(children));
@@ -355,8 +359,8 @@
 				return;
 			}
 		}
-		for (int i= 0; i < affectedChildren.length; i++) {
-			processDelta(affectedChildren[i]);
+		for (IJavaElementDelta child : affectedChildren) {
+			processDelta(child);
 		}
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/JavaBrowsingPart.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/JavaBrowsingPart.java
index 14bc5df..aecb9f4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/JavaBrowsingPart.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/JavaBrowsingPart.java
@@ -260,16 +260,15 @@
 		Object elements[]= ((IStructuredSelection) fViewer.getSelection()).toArray();
 		if (elements.length > 0) {
 			IMemento selectionMem= memento.createChild(TAG_SELECTED_ELEMENTS);
-			for (int i= 0; i < elements.length; i++) {
+			for (Object element : elements) {
 				IMemento elementMem= selectionMem.createChild(TAG_SELECTED_ELEMENT);
-				Object o= elements[i];
-				if (o instanceof IJavaElement)
-					elementMem.putString(TAG_SELECTED_ELEMENT_PATH, ((IJavaElement) elements[i]).getHandleIdentifier());
-				else if (o instanceof LogicalPackage) {
-					IPackageFragment[] packages=((LogicalPackage)o).getFragments();
-					for (int j= 0; j < packages.length; j++) {
+				Object o= element;
+				if (o instanceof IJavaElement) {
+					elementMem.putString(TAG_SELECTED_ELEMENT_PATH, ((IJavaElement) element).getHandleIdentifier());
+				} else if (o instanceof LogicalPackage) {
+					for (IPackageFragment p : ((LogicalPackage)o).getFragments()) {
 						IMemento packageMem= elementMem.createChild(TAG_LOGICAL_PACKAGE);
-						packageMem.putString(TAG_SELECTED_ELEMENT_PATH, packages[j].getHandleIdentifier());
+						packageMem.putString(TAG_SELECTED_ELEMENT_PATH, p.getHandleIdentifier());
 					}
 				}
 			}
@@ -297,15 +296,13 @@
 		childMem= memento.getChild(TAG_SELECTED_ELEMENTS);
 		if (childMem != null) {
 			ArrayList<Object> list= new ArrayList<>();
-			IMemento[] elementMem= childMem.getChildren(TAG_SELECTED_ELEMENT);
-			for (int i= 0; i < elementMem.length; i++) {
-				String javaElementHandle= elementMem[i].getString(TAG_SELECTED_ELEMENT_PATH);
+			for (IMemento m : childMem.getChildren(TAG_SELECTED_ELEMENT)) {
+				String javaElementHandle= m.getString(TAG_SELECTED_ELEMENT_PATH);
 				if (javaElementHandle == null) {
 					// logical package
-					IMemento[] packagesMem= elementMem[i].getChildren(TAG_LOGICAL_PACKAGE);
 					LogicalPackage lp= null;
-					for (int j= 0; j < packagesMem.length; j++) {
-						javaElementHandle= packagesMem[j].getString(TAG_SELECTED_ELEMENT_PATH);
+					for (IMemento p : m.getChildren(TAG_LOGICAL_PACKAGE)) {
+						javaElementHandle= p.getString(TAG_SELECTED_ELEMENT_PATH);
 						Object pack= JavaCore.create(javaElementHandle);
 						if (pack instanceof IPackageFragment && ((IPackageFragment)pack).exists()) {
 							if (lp == null)
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/LogicalPackage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/LogicalPackage.java
index e3421a5..596c8ff 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/LogicalPackage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/LogicalPackage.java
@@ -121,8 +121,7 @@
 			return false;
 
 		//this works because a LogicalPackage cannot contain the same IPackageFragment twice
-		for (int i= 0; i < fragments.length; i++) {
-			IPackageFragment fragment= fragments[i];
+		for (IPackageFragment fragment : fragments) {
 			if(!fPackages.contains(fragment))
 				return false;
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/LogicalPackagesProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/LogicalPackagesProvider.java
index 2fcad8c..79423a6 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/LogicalPackagesProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/LogicalPackagesProvider.java
@@ -64,8 +64,7 @@
 	 * @param packageFragments the package fragments to add
 	 */
 	protected void addFragmentsToMap(IPackageFragment[] packageFragments) {
-		for (int i= 0; i < packageFragments.length; i++) {
-			IPackageFragment fragment= packageFragments[i];
+		for (IPackageFragment fragment : packageFragments) {
 			String key= getKey(fragment);
 			fMapToPackageFragments.put(key, fragment);
 		}
@@ -105,9 +104,7 @@
 
 		List<IAdaptable> newChildren= new ArrayList<>();
 
-		for (int i= 0; i < packageFragments.length; i++) {
-			IPackageFragment fragment=  packageFragments[i];
-
+		for (IPackageFragment fragment : packageFragments) {
 			if (fragment == null)
 				continue;
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackageViewerWrapper.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackageViewerWrapper.java
index 1ac05f0..f5489d1 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackageViewerWrapper.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackageViewerWrapper.java
@@ -81,9 +81,7 @@
 	private void transferFilters(StructuredViewer oldViewer) {
 		//set filters
 		if (oldViewer != null) {
-			ViewerFilter[] filters= oldViewer.getFilters();
-			for (int i= 0; i < filters.length; i++) {
-				ViewerFilter filter= filters[i];
+			for (ViewerFilter filter : oldViewer.getFilters()) {
 				fViewer.addFilter(filter);
 			}
 		}
@@ -91,25 +89,18 @@
 
 	private void transferListeners() {
 
-		Object[] listeners= fPostSelectionChangedListenerList.getListeners();
-		for (int i= 0; i < listeners.length; i++) {
-			Object object= listeners[i];
+		for (Object object : fPostSelectionChangedListenerList.getListeners()) {
 			ISelectionChangedListener listener= (ISelectionChangedListener)object;
 			fViewer.addPostSelectionChangedListener(listener);
 		}
 
-		listeners= fSelectionChangedListenerList.getListeners();
-		for (int i= 0; i < listeners.length; i++) {
-			Object object= listeners[i];
+		for (Object object : fSelectionChangedListenerList.getListeners()) {
 			ISelectionChangedListener listener= (ISelectionChangedListener)object;
 			fViewer.addSelectionChangedListener(listener);
 		}
 
 		// Add all other listeners
-		listeners= fListenerList.getListeners();
-		for (int i= 0; i < listeners.length; i++) {
-			Object object= listeners[i];
-
+		for (Object object : fListenerList.getListeners()) {
 			if (object instanceof IOpenListener) {
 				IOpenListener listener= (IOpenListener) object;
 				addOpenListener(listener);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesView.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesView.java
index 3074506..91160db 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesView.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesView.java
@@ -111,8 +111,7 @@
 			buf.append(JavaElementLabels.CONCAT_STRING);
 			String message= ""; //$NON-NLS-1$
 			boolean firstTime= true;
-			for (int i= 0; i < fragments.length; i++) {
-				IPackageFragment fragment= fragments[i];
+			for (IPackageFragment fragment : fragments) {
 				IJavaElement element= fragment.getParent();
 				if (element instanceof IPackageFragmentRoot) {
 					IPackageFragmentRoot root= (IPackageFragmentRoot) element;
@@ -607,11 +606,9 @@
 				if(element instanceof LogicalPackage){
 					LogicalPackage el= (LogicalPackage) element;
 					ILabelDecorator decorator= getLabelDecorator();
-					IPackageFragment[] fragments= el.getFragments();
-
+					
 					Image image= super.getImage(el);
-					for (int i= 0; i < fragments.length; i++) {
-						IPackageFragment fragment= fragments[i];
+					for (IPackageFragment fragment : el.getFragments()) {
 						Image decoratedImage= decorator.decorateImage(image, fragment);
 						if(decoratedImage != null)
 							image= decoratedImage;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewFlatContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewFlatContentProvider.java
index cf9aa12..21c7556 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewFlatContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewFlatContentProvider.java
@@ -101,8 +101,7 @@
 	 */
 	private IPackageFragment[] getPackageFragments(IPackageFragment[] iPackageFragments) {
 		List<IPackageFragment> list= new ArrayList<>();
-		for (int i= 0; i < iPackageFragments.length; i++) {
-			IPackageFragment fragment= iPackageFragments[i];
+		for (IPackageFragment fragment : iPackageFragments) {
 			IJavaElement el= fragment.getParent();
 			if (el instanceof IPackageFragmentRoot) {
 				IPackageFragmentRoot root= (IPackageFragmentRoot) el;
@@ -209,9 +208,7 @@
 
 
 	private void processAffectedChildren(IJavaElementDelta delta) throws JavaModelException {
-		IJavaElementDelta[] children= delta.getAffectedChildren();
-		for (int i= 0; i < children.length; i++) {
-			IJavaElementDelta elementDelta= children[i];
+		for (IJavaElementDelta elementDelta : delta.getAffectedChildren()) {
 			processDelta(elementDelta);
 		}
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewHierarchicalContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewHierarchicalContentProvider.java
index 5b5f013..8fb7d71 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewHierarchicalContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewHierarchicalContentProvider.java
@@ -75,11 +75,8 @@
 							fMapToPackageFragments.clear();
 							IJavaProject project= (IJavaProject) parentElement;
 
-							IPackageFragment[] topLevelChildren= getTopLevelChildrenByElementName(project.getPackageFragments());
 							List<IPackageFragment> list= new ArrayList<>();
-							for (int i= 0; i < topLevelChildren.length; i++) {
-								IPackageFragment fragment= topLevelChildren[i];
-
+							for (IPackageFragment fragment : getTopLevelChildrenByElementName(project.getPackageFragments())) {
 								IJavaElement el= fragment.getParent();
 								if (el instanceof IPackageFragmentRoot) {
 									IPackageFragmentRoot root= (IPackageFragmentRoot) el;
@@ -88,10 +85,8 @@
 								}
 							}
 
-							IPackageFragmentRoot[] packageFragmentRoots= project.getPackageFragmentRoots();
 							List<Object> folders= new ArrayList<>();
-							for (int i= 0; i < packageFragmentRoots.length; i++) {
-								IPackageFragmentRoot root= packageFragmentRoots[i];
+							for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
 								IResource resource= root.getUnderlyingResource();
 								if (resource != null && resource instanceof IFolder) {
 									folders.addAll(getFolders(((IFolder)resource).members()));
@@ -154,8 +149,7 @@
 							}
 							ArrayList<Object> combined= new ArrayList<>();
 							combined.addAll(Arrays.asList(fragments));
-							for (int i= 0; i < nonJavaResources.length; i++) {
-								Object curr= nonJavaResources[i];
+							for (Object curr : nonJavaResources) {
 								if (curr instanceof IFolder) {
 									combined.add(curr);
 								}
@@ -169,9 +163,7 @@
 
 				List<IPackageFragment> children= new ArrayList<>();
 				LogicalPackage logicalPackage= (LogicalPackage) parentElement;
-				IPackageFragment[] elements= logicalPackage.getFragments();
-				for (int i= 0; i < elements.length; i++) {
-					IPackageFragment fragment= elements[i];
+				for (IPackageFragment fragment : logicalPackage.getFragments()) {
 					IPackageFragment[] objects= findNextLevelChildrenByElementName((IPackageFragmentRoot) fragment.getParent(), fragment);
 					children.addAll(Arrays.asList(objects));
 				}
@@ -204,9 +196,7 @@
 
 	private List<IAdaptable> getFoldersAndElements(IResource[] resources) {
 		List<IAdaptable> list= new ArrayList<>();
-		for (int i= 0; i < resources.length; i++) {
-			IResource resource= resources[i];
-
+		for (IResource resource : resources) {
 			if (resource instanceof IFolder) {
 				IFolder folder= (IFolder) resource;
 				IJavaElement element= JavaCore.create(folder);
@@ -223,9 +213,7 @@
 
 	private List<IFolder> getFolders(IResource[] resources) {
 		List<IFolder> list= new ArrayList<>();
-		for (int i= 0; i < resources.length; i++) {
-			IResource resource= resources[i];
-
+		for (IResource resource : resources) {
 			if (resource instanceof IFolder) {
 				IFolder folder= (IFolder) resource;
 				IJavaElement element= JavaCore.create(folder);
@@ -242,10 +230,8 @@
 		List<IPackageFragment> list= new ArrayList<>();
 		try {
 
-			IJavaElement[] children= parent.getChildren();
 			String fragmentname= fragment.getElementName();
-			for (int i= 0; i < children.length; i++) {
-				IJavaElement element= children[i];
+			for (IJavaElement element : parent.getChildren()) {
 				if (element instanceof IPackageFragment) {
 					IPackageFragment frag= (IPackageFragment) element;
 
@@ -267,8 +253,7 @@
 
 	private IPackageFragment[] getTopLevelChildrenByElementName(IJavaElement[] elements){
 		List<IJavaElement> topLevelElements= new ArrayList<>();
-		for (int i= 0; i < elements.length; i++) {
-			IJavaElement iJavaElement= elements[i];
+		for (IJavaElement iJavaElement : elements) {
 			//if the name of the PackageFragment is the top level package it will contain no "." separators
 			if (iJavaElement instanceof IPackageFragment && iJavaElement.getElementName().indexOf('.')==-1){
 				topLevelElements.add(iJavaElement);
@@ -345,9 +330,7 @@
 
 		List<IPackageFragment> fragments= new ArrayList<>();
 		try {
-			IPackageFragmentRoot[] roots= pkgFragment.getJavaProject().getPackageFragmentRoots();
-			for (int i= 0; i < roots.length; i++) {
-				IPackageFragmentRoot root= roots[i];
+			for (IPackageFragmentRoot root : pkgFragment.getJavaProject().getPackageFragmentRoots()) {
 				IPackageFragment fragment= root.getPackageFragment(pkgFragment.getElementName());
 				if(fragment.exists() && !fragment.equals(pkgFragment))
 					fragments.add(fragment);
@@ -510,10 +493,9 @@
 	}
 
 	private void processAffectedChildren(IJavaElementDelta delta) throws JavaModelException {
-		IJavaElementDelta[] affectedChildren = delta.getAffectedChildren();
-		for (int i = 0; i < affectedChildren.length; i++) {
-			if (!(affectedChildren[i] instanceof ICompilationUnit)) {
-				processDelta(affectedChildren[i]);
+		for (IJavaElementDelta child : delta.getAffectedChildren()) {
+			if (!(child instanceof ICompilationUnit)) {
+				processDelta(child);
 			}
 		}
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewLabelProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewLabelProvider.java
index 1a36751..c693f74 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewLabelProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewLabelProvider.java
@@ -83,9 +83,7 @@
 	 * Decoration is only concerned with error ticks
 	 */
 	private Image getLogicalPackageImage(LogicalPackage cp) {
-		IPackageFragment[] fragments= cp.getFragments();
-		for (int i= 0; i < fragments.length; i++) {
-			IPackageFragment fragment= fragments[i];
+		for (IPackageFragment fragment : cp.getFragments()) {
 			if(!isEmpty(fragment)) {
 				return decorateCompoundElement(JavaPluginImages.DESC_OBJS_LOGICAL_PACKAGE, cp);
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewTableViewer.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewTableViewer.java
index 47f064f..43240f2 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewTableViewer.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewTableViewer.java
@@ -37,9 +37,7 @@
 	public void mapElement(Object element, Widget item) {
 		if (element instanceof LogicalPackage && item instanceof Item) {
 			LogicalPackage cp= (LogicalPackage) element;
-			IPackageFragment[] fragments= cp.getFragments();
-			for (int i= 0; i < fragments.length; i++) {
-				IPackageFragment fragment= fragments[i];
+			for (IPackageFragment fragment : cp.getFragments()) {
 				fResourceToItemsMapper.addToMap(fragment, (Item)item);
 			}
 		}
@@ -50,9 +48,7 @@
 	public void unmapElement(Object element, Widget item) {
 		if (element instanceof LogicalPackage && item instanceof Item) {
 			LogicalPackage cp= (LogicalPackage) element;
-			IPackageFragment[] fragments= cp.getFragments();
-			for (int i= 0; i < fragments.length; i++) {
-				IPackageFragment fragment= fragments[i];
+			for (IPackageFragment fragment : cp.getFragments()) {
 				fResourceToItemsMapper.removeFromMap(fragment, (Item)item);
 			}
 		}
@@ -70,8 +66,7 @@
 		List<Object> list= new ArrayList<>();
 		if (result != null) {
 			Object[] toBeFiltered= new Object[1];
-			for (int i= 0; i < result.length; i++) {
-				Object object= result[i];
+			for (Object object : result) {
 				if(object instanceof LogicalPackage) {
 					if(selectLogicalPackage((LogicalPackage)object))
 						list.add(object);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewTreeViewer.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewTreeViewer.java
index bafa4c3..b9e0445 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewTreeViewer.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/PackagesViewTreeViewer.java
@@ -43,9 +43,7 @@
 	public void mapElement(Object element, Widget item) {
 		if (element instanceof LogicalPackage && item instanceof Item) {
 			LogicalPackage cp= (LogicalPackage) element;
-			IPackageFragment[] fragments= cp.getFragments();
-			for (int i= 0; i < fragments.length; i++) {
-				IPackageFragment fragment= fragments[i];
+			for (IPackageFragment fragment : cp.getFragments()) {
 				fResourceToItemsMapper.addToMap(fragment, (Item) item);
 			}
 		}
@@ -60,9 +58,7 @@
 
 		if (element instanceof LogicalPackage && item instanceof Item) {
 			LogicalPackage cp= (LogicalPackage) element;
-			IPackageFragment[] fragments= cp.getFragments();
-			for (int i= 0; i < fragments.length; i++) {
-				IPackageFragment fragment= fragments[i];
+			for (IPackageFragment fragment : cp.getFragments()) {
 				fResourceToItemsMapper.removeFromMap((Object)fragment, (Item)item);
 			}
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/ProjectAndSourceFolderContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/ProjectAndSourceFolderContentProvider.java
index 2fdfb6e..da453f8 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/ProjectAndSourceFolderContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/browsing/ProjectAndSourceFolderContentProvider.java
@@ -85,8 +85,7 @@
 		List<IPackageFragmentRoot> list= new ArrayList<>(roots.length);
 		// filter out package fragments that correspond to projects and
 		// replace them with the package fragments directly
-		for (int i= 0; i < roots.length; i++) {
-			IPackageFragmentRoot root= roots[i];
+		for (IPackageFragmentRoot root : roots) {
 			if (!isProjectPackageFragmentRoot(root))
 				list.add(root);
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyContentProvider.java
index f60f2f5..b6c8705 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyContentProvider.java
@@ -249,12 +249,10 @@
 			return false;
 		}
 		
-		for (int i= 0; i < defaultMemberPatterns.length; i++) {
-			String defaultMemberPattern= defaultMemberPatterns[i];
+		for (String defaultMemberPattern : defaultMemberPatterns) {
 			int pos= defaultMemberPattern.lastIndexOf('.');
 			String defaultTypeName= defaultMemberPattern.substring(0, pos);
 			String defaultMethodName= defaultMemberPattern.substring(pos + 1);
-			
 			if ("*".equals(defaultMethodName)) { //$NON-NLS-1$
 				if (declaringTypeName.equals(defaultTypeName)) {
 					return true;
@@ -270,8 +268,7 @@
 			if (superClassName != null && JavaModelUtil.isMatchingName(superClassName, defaultTypeName)) {
 				return true;
 			}
-			for (int j= 0; j < superInterfaceNames.length; j++) {
-				String superInterfaceName= superInterfaceNames[j];
+			for (String superInterfaceName : superInterfaceNames) {
 				if (JavaModelUtil.isMatchingName(superInterfaceName, defaultTypeName)) {
 					return true;
 				}
@@ -455,10 +452,9 @@
      */
     void cancelJobs(MethodWrapper[] wrappers) {
         if (fManager != null && wrappers != null) {
-        	for (int i= 0; i < wrappers.length; i++) {
-				MethodWrapper wrapper= wrappers[i];
-				fManager.cancel(wrapper);
-			}
+        	for (MethodWrapper wrapper : wrappers) {
+        		fManager.cancel(wrapper);
+        	}
             if (fPart != null) {
                 fPart.setCancelEnabled(false);
             }
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyUI.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyUI.java
index e39a1bd..35bacf4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyUI.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CallHierarchyUI.java
@@ -263,8 +263,7 @@
 	 */
 	private CallHierarchyViewPart findLRUCallHierarchyViewPart(IWorkbenchPage page) {
 		boolean viewFoundInPage= false;
-		for (Iterator<CallHierarchyViewPart> iter= fLRUCallHierarchyViews.iterator(); iter.hasNext();) {
-			CallHierarchyViewPart view= iter.next();
+		for (CallHierarchyViewPart view : fLRUCallHierarchyViews) {
 			if (page.equals(view.getSite().getPage())) {
 				if (!view.isPinned()) {
 					return view;
@@ -274,9 +273,7 @@
 		}
 		if (!viewFoundInPage) {
 			// find unresolved views
-			IViewReference[] viewReferences= page.getViewReferences();
-			for (int i= 0; i < viewReferences.length; i++) {
-				IViewReference curr= viewReferences[i];
+			for (IViewReference curr : page.getViewReferences()) {
 				if (CallHierarchyViewPart.ID_CALL_HIERARCHY.equals(curr.getId()) && page.equals(curr.getPage())) {
 					CallHierarchyViewPart view= (CallHierarchyViewPart)curr.getView(true);
 					if (view != null && !view.isPinned()) {
@@ -350,8 +347,7 @@
 	 * @since 3.7
 	 */
 	void clearHistory() {
-		for (Iterator<CallHierarchyViewPart> iter= fLRUCallHierarchyViews.iterator(); iter.hasNext();) {
-			CallHierarchyViewPart part= iter.next();
+		for (CallHierarchyViewPart part : fLRUCallHierarchyViews) {
 			part.setHistoryEntries(new IMember[0][]);
 			part.setInputElements(null);
 		}
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 7b4b714..824195b 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
@@ -346,8 +346,8 @@
     }
 
 	private void updateCheckedState() {
-		for (int i= 0; i < fToggleOrientationActions.length; i++) {
-			fToggleOrientationActions[i].setChecked(fOrientation == fToggleOrientationActions[i].getOrientation());
+		for (ToggleOrientationAction toaction : fToggleOrientationActions) {
+			toaction.setChecked(fOrientation == toaction.getOrientation());
 		}
 	}
 
@@ -357,9 +357,9 @@
      */
     void setCallMode(int mode) {
         if (fCurrentCallMode != mode) {
-            for (int i = 0; i < fToggleCallModeActions.length; i++) {
-                fToggleCallModeActions[i].setChecked(mode == fToggleCallModeActions[i].getMode());
-            }
+			for (ToggleCallModeAction tcmaction : fToggleCallModeActions) {
+				tcmaction.setChecked(mode == tcmaction.getMode());
+			}
 
             fCurrentCallMode = mode;
             fDialogSettings.put(DIALOGSTORE_CALL_MODE, mode);
@@ -385,9 +385,9 @@
      */
     void setFieldMode(int mode) {
         if (fCurrentFieldMode != mode) {
-            for (int i = 0; i < fToggleFieldModeActions.length; i++) {
-                fToggleFieldModeActions[i].setChecked(mode == fToggleFieldModeActions[i].getMode());
-            }
+			for (SelectFieldModeAction toggleFieldModeAction : fToggleFieldModeActions) {
+				toggleFieldModeAction.setChecked(mode == toggleFieldModeAction.getMode());
+			}
 
             fCurrentFieldMode = mode;
             fDialogSettings.put(DIALOGSTORE_FIELD_MODE, mode);
@@ -708,24 +708,24 @@
         IMenuManager viewMenu = actionBars.getMenuManager();
         viewMenu.add(new Separator());
 
-        for (int i = 0; i < fToggleCallModeActions.length; i++) {
-            viewMenu.add(fToggleCallModeActions[i]);
-        }
+		for (ToggleCallModeAction fToggleCallModeAction : fToggleCallModeActions) {
+			viewMenu.add(fToggleCallModeAction);
+		}
 
         viewMenu.add(new Separator());
 
         MenuManager layoutSubMenu= new MenuManager(CallHierarchyMessages.CallHierarchyViewPart_layout_menu);
-        for (int i = 0; i < fToggleOrientationActions.length; i++) {
-        	layoutSubMenu.add(fToggleOrientationActions[i]);
-        }
+		for (ToggleOrientationAction fToggleOrientationAction : fToggleOrientationActions) {
+			layoutSubMenu.add(fToggleOrientationAction);
+		}
         viewMenu.add(layoutSubMenu);
 
 		viewMenu.add(new Separator(IContextMenuConstants.GROUP_SEARCH));
 
         MenuManager fieldSubMenu= new MenuManager(CallHierarchyMessages.CallHierarchyViewPart_field_menu);
-        for (int i = 0; i < fToggleFieldModeActions.length; i++) {
-        	fieldSubMenu.add(fToggleFieldModeActions[i]);
-        }
+		for (SelectFieldModeAction fToggleFieldModeAction : fToggleFieldModeActions) {
+			fieldSubMenu.add(fToggleFieldModeAction);
+		}
         viewMenu.add(fieldSubMenu);
         viewMenu.add(fShowSearchInDialogAction);
     }
@@ -939,8 +939,8 @@
     	}
         if (fCallerRoots == null) {
             fCallerRoots = CallHierarchy.getDefault().getCallerRoots(fInputElements);
-        	for (int i= 0; i < fCallerRoots.length; i++) {
-        		fCallerRoots[i].setFieldSearchMode(fCurrentFieldMode);
+			for (MethodWrapper fCallerRoot : fCallerRoots) {
+				fCallerRoot.setFieldSearchMode(fCurrentFieldMode);
 			}
         }
 
@@ -1046,9 +1046,9 @@
 
         toolBar.add(fRefreshViewAction);
         toolBar.add(fCancelSearchAction);
-        for (int i = 0; i < fToggleCallModeActions.length; i++) {
-            toolBar.add(fToggleCallModeActions[i]);
-        }
+		for (ToggleCallModeAction fToggleCallModeAction : fToggleCallModeActions) {
+			toolBar.add(fToggleCallModeAction);
+		}
         toolBar.add(fHistoryDropDownAction);
         toolBar.add(fPinViewAction);
     }
@@ -1120,9 +1120,7 @@
 
     private void updateHistoryEntries() {
         for (int i = getMethodHistory().size() - 1; i >= 0; i--) {
-            IMember[] members = getMethodHistory().get(i);
-            for (int j= 0; j < members.length; j++) {
-				IMember member= members[j];
+         	for (IMember member : getMethodHistory().get(i)) {
 				if (! member.exists()) {
 					getMethodHistory().remove(i);
 					break;
@@ -1377,9 +1375,8 @@
 		
 		List<IMember> inputElements= Arrays.asList(fInputElements);
 		List<IMember> treeElements= new ArrayList<>();
-		TreeItem[] treeItems= fCallHierarchyViewer.getTree().getItems();
-		for (int i= 0; i < treeItems.length; i++) {
-			Object data= treeItems[i].getData();
+		for (TreeItem treeItem : fCallHierarchyViewer.getTree().getItems()) {
+			Object data= treeItem.getData();
 			if (data instanceof MethodWrapper)
 				treeElements.add(((MethodWrapper) data).getMember());
 		}
@@ -1388,8 +1385,7 @@
 		newInput.addAll(inputElements);
 		List<IMember> addedElements= new ArrayList<>();
 		
-		for (int i= 0; i < newElements.length; i++) {
-			IMember newElement= newElements[i];
+		for (IMember newElement : newElements) {
 			if (! inputElements.contains(newElement))
 				newInput.add(newElement);
 			if (! treeElements.contains(newElement))
@@ -1420,8 +1416,8 @@
 		CallHierarchyViewer hierarchyViewer= getViewer();		
 		TreeRoot treeRoot= hierarchyViewer.getTreeRoot(roots, true);
 		hierarchyViewer.add(treeRoot, (Object[]) roots);
-		for (int i= 0; i < roots.length; i++) {
-			hierarchyViewer.setExpandedState(roots[i], true);
+		for (MethodWrapper root : roots) {
+			hierarchyViewer.setExpandedState(root, true);
 		}
 		hierarchyViewer.setSelection(new StructuredSelection(roots), true);
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CopyCallHierarchyAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CopyCallHierarchyAction.java
index db5ad53..fb3b942 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CopyCallHierarchyAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/CopyCallHierarchyAction.java
@@ -111,9 +111,8 @@
 		buf.append('\n');
 
 		if (item.getExpanded()) {
-			TreeItem[] items= item.getItems();
-			for (int i= 0; i < items.length; i++) {
-				addCalls(items[i], indent + 1, buf);
+			for (TreeItem i : item.getItems()) {
+				addCalls(i, indent + 1, buf);
 			}
 		}
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/OpenCallHierarchyAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/OpenCallHierarchyAction.java
index f09b59a..72a6cce 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/OpenCallHierarchyAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/OpenCallHierarchyAction.java
@@ -99,8 +99,7 @@
 			if (elements == null)
 				return;
 			List<IJavaElement> candidates= new ArrayList<>(elements.length);
-			for (int i= 0; i < elements.length; i++) {
-				IJavaElement element= elements[i];
+			for (IJavaElement element : elements) {
 				if (CallHierarchy.isPossibleInputElement(element)) {
 					candidates.add(element);
 				}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/RemoveFromViewAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/RemoveFromViewAction.java
index 523d1a5..3515bf3 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/RemoveFromViewAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/RemoveFromViewAction.java
@@ -74,9 +74,9 @@
 	 */
 	@Override
 	public void run() {
-		TreeItem[] items= fCallHierarchyViewer.getTree().getSelection();
-		for (int i= 0; i < items.length; i++)
-			items[i].dispose();
+		for (TreeItem item : fCallHierarchyViewer.getTree().getSelection()) {
+			item.dispose();
+		}
 	}
 
 	/**
@@ -105,10 +105,10 @@
 				return false;
 		}
 
-		TreeItem[] items= fCallHierarchyViewer.getTree().getSelection();
-		for (int k= 0; k < items.length; k++) {
-			if (!checkForChildren(items[k]))
+		for (TreeItem item : fCallHierarchyViewer.getTree().getSelection()) {
+			if (!checkForChildren(item)) {
 				return false;
+			}
 		}
 		return true;
 	}
@@ -127,9 +127,10 @@
 			if (!(data instanceof MethodWrapper) && data != null)
 				return false; // Do not add action if children are still being fetched for that node or if it's only JFace's dummy node.
 		}
-		for (int i= 0; i < children.length; i++) {
-			if (!checkForChildren(children[i]))
+		for (TreeItem child : children) {
+			if (!checkForChildren(child)) {
 				return false;
+			}
 		}
 		return true;
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchInDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchInDialog.java
index 654b8d3..039f37a 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchInDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchInDialog.java
@@ -154,8 +154,8 @@
 				updateOKStatus();
 			}
 		};
-		for (int i= 0; i < fIncludeMasks.length; i++) {
-			fIncludeMasks[i].addSelectionListener(listener);
+		for (Button b : fIncludeMasks) {
+			b.addSelectionListener(listener);
 		}
 
 		return result;
@@ -178,8 +178,7 @@
 		if (fIncludeMasks == null || fIncludeMasks[0].isDisposed())
 			return fIncludeMask;
 		int mask= 0;
-		for (int i= 0; i < fIncludeMasks.length; i++) {
-			Button button= fIncludeMasks[i];
+		for (Button button : fIncludeMasks) {
 			if (button.getSelection()) {
 				mask|= getIntData(button);
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchScopeActionGroup.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchScopeActionGroup.java
index edd9b10..a15f926 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchScopeActionGroup.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchScopeActionGroup.java
@@ -121,8 +121,8 @@
 			return null;
 		}
 		Set<IWorkingSet> workingSets= new HashSet<>(2);
-		for (int j= 0; j < workingSetNames.length; j++) {
-			IWorkingSet workingSet= getWorkingSetManager().getWorkingSet(workingSetNames[j]);
+		for (String workingSetName : workingSetNames) {
+			IWorkingSet workingSet= getWorkingSetManager().getWorkingSet(workingSetName);
 			if (workingSet != null) {
 				workingSets.add(workingSet);
 			}
@@ -168,11 +168,7 @@
 	}
 
 	protected void fillSearchActions(IMenuManager javaSearchMM) {
-		Action[] actions = getActions();
-
-		for (int i = 0; i < actions.length; i++) {
-			Action action = actions[i];
-
+		for (Action action :  getActions()) {
 			if (action.isEnabled()) {
 				javaSearchMM.add(action);
 			}
@@ -227,8 +223,7 @@
 		int checked = getCheckedActionCount(result);
 		if (checked != 1) {
 			if (checked > 1) {
-				for (int i = 0; i < result.length; i++) {
-					Action action = result[i];
+				for (Action action : result) {
 					action.setChecked(false);
 				}
 			}
@@ -239,8 +234,7 @@
 	private int getCheckedActionCount(Action[] result) {
 		// Ensure that exactly one action is selected
 		int checked= 0;
-		for (int i = 0; i < result.length; i++) {
-			Action action = result[i];
+		for (Action action : result) {
 			if (action.isChecked()) {
 				checked++;
 			}
@@ -340,11 +334,11 @@
 	private boolean isSelectedWorkingSet(IWorkingSet[] workingSets) {
 		if (fSelectedWorkingSetNames != null && fSelectedWorkingSetNames.length == workingSets.length) {
 			Set<String> workingSetNames= new HashSet<>(workingSets.length);
-			for (int i = 0; i < workingSets.length; i++) {
-				workingSetNames.add(workingSets[i].getName());
+			for (IWorkingSet workingSet : workingSets) {
+				workingSetNames.add(workingSet.getName());
 			}
-			for (int i = 0; i < fSelectedWorkingSetNames.length; i++) {
-				if (!workingSetNames.contains(fSelectedWorkingSetNames[i])) {
+			for (String selectedWorkingSetName : fSelectedWorkingSetNames) {
+				if (!workingSetNames.contains(selectedWorkingSetName)) {
 					return false;
 				}
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchScopeProjectAction.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchScopeProjectAction.java
index 607f5d8..62502f9 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchScopeProjectAction.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchScopeProjectAction.java
@@ -49,8 +49,8 @@
 		}
 
 		HashSet<IJavaProject> projects= new HashSet<>();
-		for (int i= 0; i < members.length; i++) {
-			projects.add(members[i].getJavaProject());
+		for (IMember member : members) {
+			projects.add(member.getJavaProject());
 		}
 		return SearchEngine.createJavaSearchScope(
 				projects.toArray(new IJavaProject[projects.size()]),
@@ -67,8 +67,8 @@
 		IMember[] members= fGroup.getView().getInputElements();
 		if (members != null) {
 			HashSet<String> projectNames= new HashSet<>();
-			for (int i= 0; i < members.length; i++) {
-				projectNames.add(members[i].getJavaProject().getElementName());
+			for (IMember member : members) {
+				projectNames.add(member.getJavaProject().getElementName());
 			}
 			JavaSearchScopeFactory factory= JavaSearchScopeFactory.getInstance();
 			return factory.getProjectScopeDescription(
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchUtil.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchUtil.java
index defb603..75f36a4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchUtil.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/callhierarchy/SearchUtil.java
@@ -86,8 +86,8 @@
 			String[] lruWorkingSetNames= SearchUtil.fgSettingsStore.getArray(SearchUtil.STORE_LRU_WORKING_SET_NAMES + i);
 			if (lruWorkingSetNames != null) {
 				Set<IWorkingSet> workingSets= new HashSet<>(2);
-				for (int j= 0; j < lruWorkingSetNames.length; j++) {
-					IWorkingSet workingSet= PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSet(lruWorkingSetNames[j]);
+				for (String lruWorkingSetName : lruWorkingSetNames) {
+					IWorkingSet workingSet= PlatformUI.getWorkbench().getWorkingSetManager().getWorkingSet(lruWorkingSetName);
 					if (workingSet != null) {
 						workingSets.add(workingSet);
 					}
@@ -129,8 +129,8 @@
 		String result= ""; //$NON-NLS-1$
 		if (workingSets != null && workingSets.length > 0) {
 			boolean firstFound= false;
-			for (int i= 0; i < workingSets.length; i++) {
-				String workingSetName= BasicElementLabels.getWorkingSetLabel(workingSets[i]);
+			for (IWorkingSet workingSet : workingSets) {
+				String workingSetName= BasicElementLabels.getWorkingSetLabel(workingSet);
 				if (firstFound)
 					result= Messages.format(CallHierarchyMessages.SearchUtil_workingSetConcatenation, new String[] {result, workingSetName});
 				else {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/commands/JavaElementReferenceConverter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/commands/JavaElementReferenceConverter.java
index ab33919..12e9ef6 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/commands/JavaElementReferenceConverter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/commands/JavaElementReferenceConverter.java
@@ -176,10 +176,9 @@
 				buffer= composeTypeReference(method.getDeclaringType());
 				buffer.append(TYPE_END_CHAR);
 				buffer.append(method.getElementName());
-				String[] parameterTypes= method.getParameterTypes();
 				buffer.append(PARAM_START_CHAR);
-				for (int i= 0; i < parameterTypes.length; i++) {
-					buffer.append(parameterTypes[i]);
+				for (String parameterType : method.getParameterTypes()) {
+					buffer.append(parameterType);
 				}
 				buffer.append(PARAM_END_CHAR);
 			} else
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaAddElementFromHistoryImpl.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaAddElementFromHistoryImpl.java
index 3036ae8..ce54667 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaAddElementFromHistoryImpl.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaAddElementFromHistoryImpl.java
@@ -172,24 +172,19 @@
 			CompilationUnit root= parsePartialCompilationUnit(cu2);
 			ASTRewrite rewriter= ASTRewrite.create(root.getAST());
 
-			ITypedElement[] results= d.getSelection();
-			for (int i= 0; i < results.length; i++) {
-
-			    // create an AST node
-				ASTNode newNode= createASTNode(rewriter, results[i], TextUtilities.getDefaultLineDelimiter(document), cu.getJavaProject());
+			for (ITypedElement result : d.getSelection()) {
+				// create an AST node
+				ASTNode newNode= createASTNode(rewriter, result, TextUtilities.getDefaultLineDelimiter(document), cu.getJavaProject());
 				if (newNode == null) {
 					MessageDialog.openError(shell, errorTitle, errorMessage);
 					return;
 				}
-
 				// now determine where to put the new node
 				if (newNode instanceof PackageDeclaration) {
-				    rewriter.set(root, CompilationUnit.PACKAGE_PROPERTY, newNode, null);
-
+					rewriter.set(root, CompilationUnit.PACKAGE_PROPERTY, newNode, null);
 				} else if (newNode instanceof ImportDeclaration) {
 					ListRewrite lw= rewriter.getListRewrite(root, CompilationUnit.IMPORTS_PROPERTY);
 					lw.insertFirst(newNode, null);
-
 				} else {	// class, interface, enum, annotation, method, field
 
 					if (parent instanceof ICompilationUnit) {	// top level
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaHistoryActionImpl.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaHistoryActionImpl.java
index 9d4b716..07b4139 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaHistoryActionImpl.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaHistoryActionImpl.java
@@ -248,13 +248,9 @@
 	final JavaEditor getEditor(IFile file) {
 		FileEditorInput fei= new FileEditorInput(file);
 		IWorkbench workbench= PlatformUI.getWorkbench();
-		IWorkbenchWindow[] windows= workbench.getWorkbenchWindows();
-		for (int i= 0; i < windows.length; i++) {
-			IWorkbenchPage[] pages= windows[i].getPages();
-			for (int x= 0; x < pages.length; x++) {
-				IEditorPart[] editors= pages[x].getDirtyEditors();
-				for (int z= 0; z < editors.length; z++) {
-					IEditorPart ep= editors[z];
+		for (IWorkbenchWindow window : workbench.getWorkbenchWindows()) {
+			for (IWorkbenchPage page : window.getPages()) {
+				for (IEditorPart ep : page.getDirtyEditors()) {
 					if (ep instanceof JavaEditor) {
 						JavaEditor je= (JavaEditor) ep;
 						if (fei.equals(je.getEditorInput()))
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaMergeViewer.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaMergeViewer.java
index 8ab0fb6..e89ee33 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaMergeViewer.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaMergeViewer.java
@@ -16,7 +16,6 @@
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Map.Entry;
 
@@ -167,8 +166,7 @@
 
 	private void handlePropertyChange(PropertyChangeEvent event) {
 		if (fSourceViewerConfiguration != null) {
-			for (Iterator<Entry<SourceViewer, JavaSourceViewerConfiguration>> iterator= fSourceViewerConfiguration.entrySet().iterator(); iterator.hasNext();) {
-				Entry<SourceViewer, JavaSourceViewerConfiguration> entry= iterator.next();
+			for (Entry<SourceViewer, JavaSourceViewerConfiguration> entry : fSourceViewerConfiguration.entrySet()) {
 				JavaSourceViewerConfiguration configuration= entry.getValue();
 				if (configuration.affectsTextPresentation(event)) {
 					configuration.handlePropertyChangeEvent(event);
@@ -347,14 +345,13 @@
 					children= javaContainer.getChildren();
 					if (children.length > 0) {
 						JavaNode packageDecl= null;
-						for (int i= 0; i < children.length; i++) {
-							JavaNode child= (JavaNode) children[i];
+						for (JavaNode child : (JavaNode[])children) {
 							switch (child.getTypeCode()) {
-							case JavaNode.PACKAGE:
-								packageDecl= child;
-								break;
-							case JavaNode.CLASS:
-								return child.getRange().getOffset();
+								case JavaNode.PACKAGE:
+									packageDecl= child;
+									break;
+								case JavaNode.CLASS:
+									return child.getRange().getOffset();
 							}
 						}
 						if (packageDecl != null) {
@@ -538,8 +535,7 @@
 		if (adapter == ITextEditorExtension3.class) {
 			IEditorInput activeInput= super.getAdapter(IEditorInput.class);
 			if (activeInput != null) {
-				for (Iterator<CompilationUnitEditorAdapter> iterator= fEditor.values().iterator(); iterator.hasNext();) {
-					CompilationUnitEditorAdapter editor= iterator.next();
+				for (CompilationUnitEditorAdapter editor : fEditor.values()) {
 					if (activeInput.equals(editor.getEditorInput()))
 						return (T) editor;
 				}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaStructureCreator.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaStructureCreator.java
index 309f41a..347cbfe 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaStructureCreator.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaStructureCreator.java
@@ -377,15 +377,12 @@
 
 		HashMap<String, RewriteInfo> map= new HashMap<>(10);
 
-		Object[] children= root.getChildren();
-		for (int i= 0; i < children.length; i++) {
-			DiffNode diff= (DiffNode) children[i];
+		for (IDiffElement child : root.getChildren()) {
+			DiffNode diff= (DiffNode) child;
 			JavaNode jn= (JavaNode) diff.getId();
-
 			if (jn == null)
 				continue;
 			int type= jn.getTypeCode();
-
 			// we can only combine methods or constructors
 			if (type == JavaNode.METHOD || type == JavaNode.CONSTRUCTOR) {
 
@@ -427,7 +424,6 @@
 					break;
 				}
 			}
-
 			// recurse
 			rewriteTree(differencer, diff);
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaStructureDiffViewer.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaStructureDiffViewer.java
index 209ae42..ca86d25 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaStructureDiffViewer.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/compare/JavaStructureDiffViewer.java
@@ -120,12 +120,12 @@
 		if (o != null) {
 			Object[] children= getSortedChildren(o);
 			if (children != null && children.length > 0) {
-				for (int i= 0; i < children.length; i++) {
-					o= children[i];
+				for (Object child : children) {
+					o= child;
 					Object[] sortedChildren= getSortedChildren(o);
 					if (sortedChildren != null && sortedChildren.length > 0) {
-						for (int j= 0; j < sortedChildren.length; j++) {
-							o= sortedChildren[j];
+						for (Object sortedChild : sortedChildren) {
+							o= sortedChild;
 							if (o instanceof DiffNode) {
 								DiffNode dn= (DiffNode) o;
 								ITypedElement e= dn.getId();
@@ -264,8 +264,7 @@
 	@Override
 	public void elementChanged(ElementChangedEvent event) {
 		ITypedElement[] elements= findAffectedElement(event);
-		for (int i= 0; i < elements.length; i++) {
-			ITypedElement e= elements[i];
+		for (ITypedElement e : elements) {
 			if (e == null || !(e instanceof IContentChangeNotifier))
 				continue;
 			contentChanged((IContentChangeNotifier)e);
@@ -388,8 +387,8 @@
 		if (children == null || children.length == 0)
 			return null;
 
-		for (int i= 0; i < children.length; i++) {
-			IJavaElementDelta d= findJavaElementDelta(unit, children[i]);
+		for (IJavaElementDelta child : children) {
+			IJavaElementDelta d= findJavaElementDelta(unit, child);
 			if (d != null)
 				return d;
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/FilteredTypesSelectionDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/FilteredTypesSelectionDialog.java
index 8db92a9..e832fa3 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/FilteredTypesSelectionDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/FilteredTypesSelectionDialog.java
@@ -805,9 +805,8 @@
 			fProviderExtension= extension;
 			List<IPath> locations= new ArrayList<>();
 			List<String> labels= new ArrayList<>();
-			IVMInstallType[] installs= JavaRuntime.getVMInstallTypes();
-			for (int i= 0; i < installs.length; i++) {
-				processVMInstallType(installs[i], locations, labels);
+			for (IVMInstallType install : JavaRuntime.getVMInstallTypes()) {
+				processVMInstallType(install, locations, labels);
 			}
 			fInstallLocations= CollectionsUtil.toArray(locations, IPath.class);
 			fVMNames= labels.toArray(new String[labels.size()]);
@@ -816,15 +815,14 @@
 
 		private void processVMInstallType(IVMInstallType installType, List<IPath> locations, List<String> labels) {
 			if (installType != null) {
-				IVMInstall[] installs= installType.getVMInstalls();
 				boolean isMac= Platform.OS_MACOSX.equals(Platform.getOS());
-				for (int i= 0; i < installs.length; i++) {
-					String label= getFormattedLabel(installs[i].getName());
-					LibraryLocation[] libLocations= installs[i].getLibraryLocations();
+				for (IVMInstall install : installType.getVMInstalls()) {
+					String label= getFormattedLabel(install.getName());
+					LibraryLocation[] libLocations = install.getLibraryLocations();
 					if (libLocations != null) {
 						processLibraryLocation(libLocations, label);
 					} else {
-						IPath filePath= Path.fromOSString(installs[i].getInstallLocation().getAbsolutePath());
+						IPath filePath= Path.fromOSString(install.getInstallLocation().getAbsolutePath());
 						// On MacOS X, install locations end in an additional "/Home" segment; remove it.
 						if (isMac && "Home".equals(filePath.lastSegment())) //$NON-NLS-1$
 							filePath= filePath.removeLastSegments(1);
@@ -836,8 +834,7 @@
 		}
 
 		private void processLibraryLocation(LibraryLocation[] libLocations, String label) {
-			for (int l= 0; l < libLocations.length; l++) {
-				LibraryLocation location= libLocations[l];
+			for (LibraryLocation location : libLocations) {
 				fLib2Name.put(location.getSystemLibraryPath(), label);
 			}
 		}
@@ -1115,9 +1112,8 @@
 		public TypeItemsComparator() {
 			List<String> locations= new ArrayList<>();
 			List<String> labels= new ArrayList<>();
-			IVMInstallType[] installs= JavaRuntime.getVMInstallTypes();
-			for (int i= 0; i < installs.length; i++) {
-				processVMInstallType(installs[i], locations, labels);
+			for (IVMInstallType install : JavaRuntime.getVMInstallTypes()) {
+				processVMInstallType(install, locations, labels);
 			}
 			fInstallLocations= locations.toArray(new String[locations.size()]);
 			fVMNames= labels.toArray(new String[labels.size()]);
@@ -1125,16 +1121,15 @@
 
 		private void processVMInstallType(IVMInstallType installType, List<String> locations, List<String> labels) {
 			if (installType != null) {
-				IVMInstall[] installs= installType.getVMInstalls();
 				boolean isMac= Platform.OS_MACOSX.equals(Platform.getOS());
 				final String HOME_SUFFIX= "/Home"; //$NON-NLS-1$
-				for (int i= 0; i < installs.length; i++) {
-					String label= getFormattedLabel(installs[i].getName());
-					LibraryLocation[] libLocations= installs[i].getLibraryLocations();
+				for (IVMInstall install : installType.getVMInstalls()) {
+					String label = getFormattedLabel(install.getName());
+					LibraryLocation[] libLocations= install.getLibraryLocations();
 					if (libLocations != null) {
 						processLibraryLocation(libLocations, label);
 					} else {
-						String filePath= installs[i].getInstallLocation().getAbsolutePath();
+						String filePath= install.getInstallLocation().getAbsolutePath();
 						// on MacOS X install locations end in an additional
 						// "/Home" segment; remove it
 						if (isMac && filePath.endsWith(HOME_SUFFIX))
@@ -1147,8 +1142,7 @@
 		}
 
 		private void processLibraryLocation(LibraryLocation[] libLocations, String label) {
-			for (int l= 0; l < libLocations.length; l++) {
-				LibraryLocation location= libLocations[l];
+			for (LibraryLocation location : libLocations) {
 				fLib2Name.put(location.getSystemLibraryPath().toString(), label);
 			}
 		}
@@ -1293,9 +1287,8 @@
 		 */
 		private synchronized void persistHistory() {
 			if (getReturnCode() == OK) {
-				Object[] items= getHistoryItems();
-				for (int i= 0; i < items.length; i++) {
-					OpenTypeHistory.getInstance().accessed((TypeNameMatch) items[i]);
+				for (Object item : getHistoryItems()) {
+					OpenTypeHistory.getInstance().accessed((TypeNameMatch) item);
 				}
 			}
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/GenerateHashCodeEqualsDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/GenerateHashCodeEqualsDialog.java
index 800eef1..7b2a675 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/GenerateHashCodeEqualsDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/GenerateHashCodeEqualsDialog.java
@@ -113,9 +113,10 @@
 		@Override
 		public IStatus validate(Object[] selection) {
 			int count= 0;
-			for (int index= 0; index < selection.length; index++) {
-				if (selection[index] instanceof IVariableBinding)
+			for (Object s : selection) {
+				if (s instanceof IVariableBinding) {
 					count++;
+				}
 			}
 			if (count == 0)
 				return new StatusInfo(IStatus.ERROR, JavaUIMessages.GenerateHashCodeEqualsDialog_select_at_least_one_field);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/GenerateToStringDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/GenerateToStringDialog.java
index 509dcfb..5342d53 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/GenerateToStringDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/GenerateToStringDialog.java
@@ -310,11 +310,12 @@
 			}
 
 			int countFields= 0, countMethods= 0;
-			for (int index= 0; index < selection.length; index++) {
-				if (selection[index] instanceof IVariableBinding)
+			for (Object s : selection) {
+				if (s instanceof IVariableBinding) {
 					countFields++;
-				else if (selection[index] instanceof IMethodBinding)
+				} else if (s instanceof IMethodBinding) {
 					countMethods++;
+				}
 			}
 
 			return new StatusInfo(IStatus.INFO, Messages.format(JavaUIMessages.GenerateToStringDialog_selectioninfo_more, new String[] { String.valueOf(countFields), String.valueOf(fNumFields),
@@ -517,11 +518,12 @@
 				List<Proposal> secondaryProposals= new ArrayList<>();
 				String[] proposalStrings= parser.getVariables();
 				String contentToCursor= contents.substring(0, position);
-				for (int i= 0; i < proposalStrings.length; i++) {
-					if (stringOverlap(contentToCursor, proposalStrings[i]) > 0)
-						primaryProposals.add(new Proposal(proposalStrings[i]));
-					else
-						secondaryProposals.add(new Proposal(proposalStrings[i]));
+				for (String proposalString : proposalStrings) {
+					if (stringOverlap(contentToCursor, proposalString) > 0) {
+						primaryProposals.add(new Proposal(proposalString));
+					} else {
+						secondaryProposals.add(new Proposal(proposalString));
+					}
 				}
 
 				this.latestContents= contents;
@@ -764,11 +766,10 @@
 			}
 
 			try {
-				IMethod[] methods= type.getMethods();
 				boolean foundConstructor= false;
-				for (int i= 0; i < methods.length; i++) {
-					if (methods[i].isConstructor() && Flags.isPublic(methods[i].getFlags())) {
-						String[] parameterTypes= methods[i].getParameterTypes();
+				for (IMethod method : type.getMethods()) {
+					if (method.isConstructor() && Flags.isPublic(method.getFlags())) {
+						String[] parameterTypes= method.getParameterTypes();
 						if (parameterTypes.length == 1 && "java.lang.Object".equals(JavaModelUtil.getResolvedTypeName(parameterTypes[0], type))) { //$NON-NLS-1$
 							foundConstructor= true;
 							break;
@@ -859,8 +860,8 @@
 						return false;
 					}
 					int countObjects= 0, countStrings= 0;
-					for (int i= 0; i < parameterTypes.length; i++) {
-						String resolvedParameterTypeName= JavaModelUtil.getResolvedTypeName(parameterTypes[i], type);
+					for (String parameterType : parameterTypes) {
+						String resolvedParameterTypeName= JavaModelUtil.getResolvedTypeName(parameterType, type);
 						if ("java.lang.Object".equals(resolvedParameterTypeName))//$NON-NLS-1$
 							countObjects++;
 						if ("java.lang.String".equals(resolvedParameterTypeName))//$NON-NLS-1$
@@ -890,12 +891,10 @@
 
 		private List<String> getMethodSuggestions(IType type, MethodChecker checker) throws JavaModelException {
 			ArrayList<String> result= new ArrayList<>();
-			IType[] classes= type.newSupertypeHierarchy(null).getAllClasses();
-			for (int i= 0; i < classes.length; i++) {
-				IMethod[] methods= classes[i].getMethods();
-				for (int j= 0; j < methods.length; j++) {
-					if (checker.isMethodOK(methods[j])) {
-						String name= methods[j].getElementName();
+			for (IType classe : type.newSupertypeHierarchy(null).getAllClasses()) {
+				for (IMethod method : classe.getMethods()) {
+					if (checker.isMethodOK(method)) {
+						String name= method.getElementName();
 						if (!result.contains(name))
 							result.add(name);
 					}
@@ -1233,9 +1232,9 @@
 	public Object[] getResult() {
 		Object[] oldResult= super.getResult();
 		List<Object> newResult= new ArrayList<>();
-		for (int i= 0; i < oldResult.length; i++) {
-			if (!(oldResult[i] instanceof String)) {
-				newResult.add(oldResult[i]);
+		for (Object r : oldResult) {
+			if (!(r instanceof String)) {
+				newResult.add(r);
 			}
 		}
 		return newResult.toArray();
@@ -1281,9 +1280,10 @@
 				if (parentElement != null) {
 					Object[] siblings= ((ITreeContentProvider)(getTreeViewer().getContentProvider())).getChildren(parentElement);
 					int count= 0;
-					for (int i= 0; i < siblings.length; i++) {
-						if (getTreeViewer().getChecked(siblings[i]))
+					for (Object sibling : siblings) {
+						if (getTreeViewer().getChecked(sibling)) {
 							count++;
+						}
 					}
 					if (count == 0)
 						getTreeViewer().setGrayChecked(parentElement, false);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/OverrideMethodDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/OverrideMethodDialog.java
index cb7f2ea..3ca2064 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/OverrideMethodDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/OverrideMethodDialog.java
@@ -150,9 +150,10 @@
 		public Object[] getChildren(Object parentElement) {
 			if (parentElement instanceof ITypeBinding) {
 				ArrayList<IMethodBinding> result= new ArrayList<>(fMethods.length);
-				for (int index= 0; index < fMethods.length; index++) {
-					if (fMethods[index].getDeclaringClass().isEqualTo((IBinding) parentElement))
-						result.add(fMethods[index]);
+				for (IMethodBinding fMethod : fMethods) {
+					if (fMethod.getDeclaringClass().isEqualTo((IBinding) parentElement)) {
+						result.add(fMethod);
+					}
 				}
 				return result.toArray();
 			}
@@ -266,9 +267,10 @@
 		@Override
 		public IStatus validate(Object[] selection) {
 			int count= 0;
-			for (int index= 0; index < selection.length; index++) {
-				if (selection[index] instanceof IMethodBinding)
+			for (Object s : selection) {
+				if (s instanceof IMethodBinding) {
 					count++;
+				}
 			}
 			if (count == 0)
 				return new StatusInfo(IStatus.ERROR, ""); //$NON-NLS-1$
@@ -290,9 +292,8 @@
 			if (result != null)
 				return result;
 		}
-		final ITypeBinding[] types= binding.getInterfaces();
-		for (int index= 0; index < types.length; index++) {
-			final ITypeBinding result= getSuperType(types[index], name);
+		for (ITypeBinding t : binding.getInterfaces()) {
+			final ITypeBinding result= getSuperType(t, name);
 			if (result != null)
 				return result;
 		}
@@ -312,26 +313,23 @@
 			final IPackageBinding pack= binding.getPackage();
 			final IMethodBinding[] methods= StubUtility2Core.getOverridableMethods(fUnit.getAST(), binding, false);
 			List<IMethodBinding> list= new ArrayList<>(methods.length);
-			for (int index= 0; index < methods.length; index++) {
-				final IMethodBinding cur= methods[index];
+			for (IMethodBinding cur : methods) {
 				if (Bindings.isVisibleInHierarchy(cur, pack))
 					list.add(cur);
 			}
 			overridable= list.toArray(new IMethodBinding[list.size()]);
 		} else
 			overridable= new IMethodBinding[] {};
-		for (int i= 0; i < overridable.length; i++) {
-			if (Modifier.isAbstract(overridable[i].getModifiers())) {
-				toImplement.add(overridable[i]);
+		for (IMethodBinding b : overridable) {
+			if (Modifier.isAbstract(b.getModifiers())) {
+				toImplement.add(b);
 			}
 		}
 
 		if (binding != null) {
 			ITypeBinding cloneable= getSuperType(binding, "java.lang.Cloneable"); //$NON-NLS-1$
 			if (cloneable != null) {
-				IMethodBinding[] methods= fUnit.getAST().resolveWellKnownType("java.lang.Object").getDeclaredMethods(); //$NON-NLS-1$
-				for (int index= 0; index < methods.length; index++) {
-					IMethodBinding method= methods[index];
+				for (IMethodBinding method : fUnit.getAST().resolveWellKnownType("java.lang.Object").getDeclaredMethods()) { //$NON-NLS-1$
 					if (method.getName().equals("clone") && method.getParameterTypes().length == 0) //$NON-NLS-1$
 						toImplement.add(method);
 				}
@@ -342,13 +340,13 @@
 		setInitialSelections((Object[]) toImplementArray);
 
 		HashSet<ITypeBinding> expanded= new HashSet<>(toImplementArray.length);
-		for (int i= 0; i < toImplementArray.length; i++) {
-			expanded.add(toImplementArray[i].getDeclaringClass());
+		for (IMethodBinding b : toImplementArray) {
+			expanded.add(b.getDeclaringClass());
 		}
 
 		HashSet<ITypeBinding> types= new HashSet<>(overridable.length);
-		for (int i= 0; i < overridable.length; i++) {
-			types.add(overridable[i].getDeclaringClass());
+		for (IMethodBinding b : overridable) {
+			types.add(b.getDeclaringClass());
 		}
 
 		ITypeBinding[] typesArrays= types.toArray(new ITypeBinding[types.size()]);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/SourceActionDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/SourceActionDialog.java
index 033ab85..194a57d 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/SourceActionDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/SourceActionDialog.java
@@ -167,8 +167,7 @@
 		fLabels.add(ActionMessages.SourceActionDialog_first);
 		fLabels.add(ActionMessages.SourceActionDialog_last);
 
-		for (int i = 0; i < members.length; i++) {
-			IJavaElement curr= members[i];
+		for (IJavaElement curr : members) {
 			String methodLabel= JavaElementLabels.getElementLabel(curr, JavaElementLabels.M_PARAMETER_TYPES);
 			fLabels.add(Messages.format(ActionMessages.SourceActionDialog_after, methodLabel));
 			fInsertPositions.add(findSibling(curr, members));
@@ -526,9 +525,9 @@
 		if (items.length > 0) {
 			Object revealedElement= items[0];
 
-			for (int i= 0; i < items.length; i++) {
-				if (items[i].getChecked()) {
-					revealedElement= items[i].getData();
+			for (TreeItem item : items) {
+				if (item.getChecked()) {
+					revealedElement= item.getData();
 					break;
 				}
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/StatusUtil.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/StatusUtil.java
index 15c3f58..4ac21c2 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/StatusUtil.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/StatusUtil.java
@@ -48,8 +48,7 @@
 	 */
 	public static IStatus getMostSevere(IStatus[] status) {
 		IStatus max= null;
-		for (int i= 0; i < status.length; i++) {
-			IStatus curr= status[i];
+		for (IStatus curr : status) {
 			if (curr.matches(IStatus.ERROR)) {
 				return curr;
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/TextFieldNavigationHandler.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/TextFieldNavigationHandler.java
index c50171e..2fe37c9 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/TextFieldNavigationHandler.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/dialogs/TextFieldNavigationHandler.java
@@ -14,7 +14,6 @@
 package org.eclipse.jdt.internal.ui.dialogs;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 
 import com.ibm.icu.text.BreakIterator;
@@ -365,11 +364,9 @@
 						int accelerator = SWTKeySupport.convertEventToUnmodifiedAccelerator(e);
 						KeySequence keySequence = KeySequence.getInstance(SWTKeySupport.convertAcceleratorToKeyStroke(accelerator));
 						getSubmissions();
-						for (Iterator<Submission> iter= getSubmissions().iterator(); iter.hasNext();) {
-							Submission submission= iter.next();
-							TriggerSequence[] triggerSequences= submission.getTriggerSequences();
-							for (int i= 0; i < triggerSequences.length; i++) {
-								if (triggerSequences[i].equals(keySequence)) { // XXX does not work for multi-stroke bindings
+						for (Submission submission : getSubmissions()) {
+							for (TriggerSequence triggerSequence : submission.getTriggerSequences()) {
+								if (triggerSequence.equals(keySequence)) { // XXX does not work for multi-stroke bindings
 									e.doit= false;
 									submission.execute();
 									return;
@@ -395,8 +392,7 @@
 						final Scheme[] definedSchemes= bindingService.getDefinedSchemes();
 						if (definedSchemes != null) {
 							try {
-								for (int i = 0; i < definedSchemes.length; i++) {
-									Scheme scheme= definedSchemes[i];
+								for (Scheme scheme : definedSchemes) {
 									Scheme localSchemeCopy= localBindingManager.getScheme(scheme.getId());
 									localSchemeCopy.define(scheme.getName(), scheme.getDescription(), scheme.getParentId());
 								}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/CustomFiltersDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/CustomFiltersDialog.java
index 347d9f9..3b24771 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/CustomFiltersDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/CustomFiltersDialog.java
@@ -250,8 +250,9 @@
 			public void widgetSelected(SelectionEvent e) {
 				fCheckBoxList.setAllChecked(true);
 				fFilterDescriptorChangeHistory.clear();
-				for (int i= 0; i < fBuiltInFilters.length; i++)
-					fFilterDescriptorChangeHistory.push(fBuiltInFilters[i]);
+				for (FilterDescriptor builtInFilter : fBuiltInFilters) {
+					fFilterDescriptorChangeHistory.push(builtInFilter);
+				}
 			}
 		};
 		selectButton.addSelectionListener(listener);
@@ -265,8 +266,9 @@
 			public void widgetSelected(SelectionEvent e) {
 				fCheckBoxList.setAllChecked(false);
 				fFilterDescriptorChangeHistory.clear();
-				for (int i= 0; i < fBuiltInFilters.length; i++)
-					fFilterDescriptorChangeHistory.push(fBuiltInFilters[i]);
+				for (FilterDescriptor builtInFilter : fBuiltInFilters) {
+					fFilterDescriptorChangeHistory.push(builtInFilter);
+				}
 			}
 		};
 		deselectButton.addSelectionListener(listener);
@@ -336,8 +338,9 @@
 	public String[] getEnabledFilterIds() {
 		Object[] result= getResult();
 		Set<String> enabledIds= new HashSet<>(result.length);
-		for (int i= 0; i < result.length; i++)
-			enabledIds.add(((FilterDescriptor)result[i]).getId());
+		for (Object r : result) {
+			enabledIds.add(((FilterDescriptor) r).getId());
+		}
 		return enabledIds.toArray(new String[enabledIds.size()]);
 	}
 
@@ -360,10 +363,11 @@
 		FilterDescriptor[] filterDescs= fBuiltInFilters;
 		List<FilterDescriptor> result= new ArrayList<>(filterDescs.length);
 		List<String> enabledFilterIds= Arrays.asList(fEnabledFilterIds);
-		for (int i= 0; i < filterDescs.length; i++) {
-			String id= filterDescs[i].getId();
-			if (enabledFilterIds.contains(id))
-				result.add(filterDescs[i]);
+		for (FilterDescriptor filterDesc : filterDescs) {
+			String id= filterDesc.getId();
+			if (enabledFilterIds.contains(id)) {
+				result.add(filterDesc);
+			}
 		}
 		return result.toArray(new FilterDescriptor[result.size()]);
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/EmptyPackageFilter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/EmptyPackageFilter.java
index 5bfd3ea..247636b 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/EmptyPackageFilter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/EmptyPackageFilter.java
@@ -63,9 +63,10 @@
 
 		ViewerFilter[] filters= ((StructuredViewer)viewer).getFilters();
 		resourceLoop: for (int i= 0; i < length; i++) {
-			for (int j= 0; j < filters.length; j++) {
-				if (!filters[j].select(viewer, pkg, resources[i]))
+			for (ViewerFilter filter : filters) {
+				if (!filter.select(viewer, pkg, resources[i])) {
 					continue resourceLoop;
+				}
 			}
 			return true;
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/FilterDescriptor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/FilterDescriptor.java
index 3947c15..e3ee0c5 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/FilterDescriptor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/FilterDescriptor.java
@@ -96,12 +96,14 @@
 	public static FilterDescriptor[] getFilterDescriptors(String targetId) {
 		FilterDescriptor[] filterDescs= FilterDescriptor.getFilterDescriptors();
 		List<FilterDescriptor> result= new ArrayList<>(filterDescs.length);
-		for (int i= 0; i < filterDescs.length; i++) {
-			String tid= filterDescs[i].getTargetId();
-			if (WorkbenchActivityHelper.filterItem(filterDescs[i]))
+		for (FilterDescriptor filterDesc : filterDescs) {
+			String tid= filterDesc.getTargetId();
+			if (WorkbenchActivityHelper.filterItem(filterDesc)) {
 				continue;
-			if (tid == null || tid.equals(targetId))
-				result.add(filterDescs[i]);
+			}
+			if (tid == null || tid.equals(targetId)) {
+				result.add(filterDesc);
+			}
 		}
 		return result.toArray(new FilterDescriptor[result.size()]);
 	}
@@ -262,8 +264,7 @@
 	private static FilterDescriptor[] createFilterDescriptors(IConfigurationElement[] elements) {
 		List<FilterDescriptor> result= new ArrayList<>(5);
 		Set<String> descIds= new HashSet<>(5);
-		for (int i= 0; i < elements.length; i++) {
-			final IConfigurationElement element= elements[i];
+		for (IConfigurationElement element : elements) {
 			if (FILTER_TAG.equals(element.getName())) {
 
 				final FilterDescriptor[] desc= new FilterDescriptor[1];
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/NamePatternFilter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/NamePatternFilter.java
index ba45860..23a8d17 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/NamePatternFilter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/NamePatternFilter.java
@@ -81,10 +81,10 @@
 			}
 		}
 		if (matchName != null && matchName.length() > 0) {
-			StringMatcher[] testMatchers= getMatchers();
-			for (int i = 0; i < testMatchers.length; i++) {
-				if (testMatchers[i].match(matchName))
+			for (StringMatcher testMatcher : getMatchers()) {
+				if (testMatcher.match(matchName)) {
 					return false;
+				}
 			}
 			return true;
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/NoPackageContainingFoldersFilter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/NoPackageContainingFoldersFilter.java
index 1d5abc4..bfeae52 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/NoPackageContainingFoldersFilter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/filters/NoPackageContainingFoldersFilter.java
@@ -50,10 +50,10 @@
 		IJavaElement element= JavaCore.create(folder);
 		if (element instanceof IPackageFragment)
 			return true;
-		IResource[] resources= folder.members();
-		for (int i= 0; i < resources.length; i++) {
-			if (resources[i] instanceof IFolder && containsPackage((IFolder)resources[i]))
+		for (IResource resource : folder.members()) {
+			if (resource instanceof IFolder && containsPackage((IFolder) resource)) {
 				return true;
+			}
 		}
 		return false;
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/AbstractMultiFix.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/AbstractMultiFix.java
index f4625a0..3350eef 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/AbstractMultiFix.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/AbstractMultiFix.java
@@ -67,9 +67,10 @@
 	 */
 	protected static int getNumberOfProblems(IProblem[] problems, int problemId) {
 		int result= 0;
-		for (int i= 0; i < problems.length; i++) {
-			if (problems[i].getID() == problemId)
+		for (IProblem problem : problems) {
+			if (problem.getID() == problemId) {
 				result++;
+			}
 		}
 		return result;
 	}
@@ -100,8 +101,7 @@
 	protected static IProblemLocation[] filter(IProblemLocation[] problems, int[] problemIds) {
 		ArrayList<IProblemLocation> result= new ArrayList<>();
 
-		for (int i= 0; i < problems.length; i++) {
-			IProblemLocation problem= problems[i];
+		for (IProblemLocation problem : problems) {
 			if (contains(problemIds, problem.getProblemId()) && !contains(result, problem)) {
 				result.add(problem);
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpRefactoringWizard.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpRefactoringWizard.java
index 71c5177..2817008 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpRefactoringWizard.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpRefactoringWizard.java
@@ -21,7 +21,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -130,12 +129,10 @@
 		}
 
 		private Hashtable<String, Profile> loadProfiles() {
-    		List<Profile> list= CleanUpPreferenceUtil.loadProfiles(InstanceScope.INSTANCE);
     		Hashtable<String, Profile> profileIdsTable= new Hashtable<>();
-    		for (Iterator<Profile> iterator= list.iterator(); iterator.hasNext();) {
-	            Profile profile= iterator.next();
-	            profileIdsTable.put(profile.getID(), profile);
-            }
+			for (Profile profile : CleanUpPreferenceUtil.loadProfiles(InstanceScope.INSTANCE)) {
+				profileIdsTable.put(profile.getID(), profile);
+			}
 
     		return profileIdsTable;
         }
@@ -417,20 +414,19 @@
         private void showCustomSettings(BulletListBlock bulletListBlock) {
         	StringBuilder buf= new StringBuilder();
 
-			final ICleanUp[] cleanUps= JavaPlugin.getDefault().getCleanUpRegistry().createCleanUps();
 			CleanUpOptions options= new MapCleanUpOptions(fCustomSettings);
-	    	for (int i= 0; i < cleanUps.length; i++) {
-	    		cleanUps[i].setOptions(options);
-		        String[] descriptions= cleanUps[i].getStepDescriptions();
-		        if (descriptions != null) {
-	    	        for (int j= 0; j < descriptions.length; j++) {
-	    	        	if (buf.length() > 0) {
-	    	        		buf.append('\n');
-	    	        	}
-	    	            buf.append(descriptions[j]);
-	                }
-		        }
-	        }
+			for (ICleanUp cleanUp : JavaPlugin.getDefault().getCleanUpRegistry().createCleanUps()) {
+				cleanUp.setOptions(options);
+				String[] descriptions= cleanUp.getStepDescriptions();
+				if (descriptions != null) {
+					for (String description : descriptions) {
+						if (buf.length() > 0) {
+							buf.append('\n');
+						}
+						buf.append(description);
+					}
+				}
+			}
 	    	bulletListBlock.setText(buf.toString());
         }
 
@@ -470,11 +466,12 @@
 
 			refactoring.clearCleanUps();
 			ICleanUp[] cleanups= JavaPlugin.getDefault().getCleanUpRegistry().createCleanUps();
-			for (int i= 0; i < cleanups.length; i++) {
-				if (options != null)
-					cleanups[i].setOptions(options);
-	            refactoring.addCleanUp(cleanups[i]);
-            }
+			for (ICleanUp cleanup : cleanups) {
+				if (options != null) {
+					cleanup.setOptions(options);
+				}
+				refactoring.addCleanUp(cleanup);
+			}
         }
 
 		public String encodeSettings(Map<String, String> settings) throws CoreException {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpSaveParticipantPreferenceConfiguration.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpSaveParticipantPreferenceConfiguration.java
index 51a8f17..8994870 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpSaveParticipantPreferenceConfiguration.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpSaveParticipantPreferenceConfiguration.java
@@ -15,9 +15,7 @@
 
 import java.util.HashMap;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.Map;
-import java.util.Set;
 
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -280,9 +278,7 @@
 
 		IEclipsePreferences node= fContext.getNode(JavaUI.ID_PLUGIN);
 
-		Set<String> keys= JavaPlugin.getDefault().getCleanUpRegistry().getDefaultOptions(CleanUpConstants.DEFAULT_SAVE_ACTION_OPTIONS).getKeys();
-		for (Iterator<String> iterator= keys.iterator(); iterator.hasNext();) {
-			String key= iterator.next();
+		for (String key : JavaPlugin.getDefault().getCleanUpRegistry().getDefaultOptions(CleanUpConstants.DEFAULT_SAVE_ACTION_OPTIONS).getKeys()) {
 			node.remove(CleanUpPreferenceUtil.SAVE_PARTICIPANT_KEY_PREFIX + key);
 		}
 	}
@@ -344,19 +340,18 @@
 	private String getSelectedCleanUpsText(CleanUpOptions options) {
 		StringBuilder buf= new StringBuilder();
 
-		final ICleanUp[] cleanUps= JavaPlugin.getDefault().getCleanUpRegistry().createCleanUps();
-		for (int i= 0; i < cleanUps.length; i++) {
-			cleanUps[i].setOptions(options);
-			String[] descriptions= cleanUps[i].getStepDescriptions();
+		for (ICleanUp cleanUp : JavaPlugin.getDefault().getCleanUpRegistry().createCleanUps()) {
+			cleanUp.setOptions(options);
+			String[] descriptions= cleanUp.getStepDescriptions();
 			if (descriptions != null) {
-				for (int j= 0; j < descriptions.length; j++) {
+				for (String description : descriptions) {
 					if (buf.length() > 0) {
 						buf.append('\n');
 					}
-					buf.append(descriptions[j]);
+					buf.append(description);
 				}
-	        }
-        }
+			}
+		}
 		String string= buf.toString();
 		return string;
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpSelectionDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpSelectionDialog.java
index 1e03210..9361ade 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpSelectionDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/CleanUpSelectionDialog.java
@@ -183,8 +183,8 @@
 	@Override
 	public void updateStatus(IStatus status) {
 		int count= 0;
-		for (int i= 0; i < fPages.length; i++) {
-			count+= fPages[i].getSelectedCleanUpCount();
+		for (CleanUpTabPage page : fPages) {
+			count+= page.getSelectedCleanUpCount();
 		}
 		if (count == 0) {
 			super.updateStatus(new Status(IStatus.ERROR, JavaUI.ID_PLUGIN, getEmptySelectionMessage()));
@@ -239,9 +239,9 @@
 
 	private void updateCountLabel() {
 		int size= 0, count= 0;
-		for (int i= 0; i < fPages.length; i++) {
-			size+= fPages[i].getCleanUpCount();
-			count+= fPages[i].getSelectedCleanUpCount();
+		for (CleanUpTabPage page : fPages) {
+			size+= page.getCleanUpCount();
+			count+= page.getSelectedCleanUpCount();
 		}
 
 		fCountLabel.setText(getSelectionCountMessage(count, size));
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/Java50CleanUp.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/Java50CleanUp.java
index 0959b66..1d08942 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/Java50CleanUp.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/Java50CleanUp.java
@@ -180,9 +180,8 @@
 		boolean addMissingDeprecated= addAnnotations && isEnabled(CleanUpConstants.ADD_MISSING_ANNOTATIONS_DEPRECATED);
 		boolean useTypeArgs= isEnabled(CleanUpConstants.VARIABLE_DECLARATION_USE_TYPE_ARGUMENTS_FOR_RAW_TYPE_REFERENCES);
 		
-		IProblem[] problems= compilationUnit.getProblems();
-		for (int i= 0; i < problems.length; i++) {
-			int id= problems[i].getID();
+		for (IProblem problem : compilationUnit.getProblems()) {
+			int id= problem.getID();
 			if (addMissingOverride && Java50Fix.isMissingOverrideAnnotationProblem(id))
 				if (! Java50Fix.isMissingOverrideAnnotationInterfaceProblem(id) || addMissingOverrideInterfaceMethods)
 					result++;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/MapCleanUpOptions.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/MapCleanUpOptions.java
index 62150f0..dd05c32 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/MapCleanUpOptions.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/MapCleanUpOptions.java
@@ -14,9 +14,7 @@
 package org.eclipse.jdt.internal.ui.fix;
 
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.Map;
-import java.util.Set;
 
 import org.eclipse.jdt.internal.corext.fix.CleanUpConstants;
 
@@ -57,9 +55,7 @@
 		if (options instanceof MapCleanUpOptions) {
 			fOptions.putAll(((MapCleanUpOptions)options).getMap());
 		} else {
-			Set<String> keys= options.getKeys();
-			for (Iterator<String> iterator= keys.iterator(); iterator.hasNext();) {
-				String key= iterator.next();
+			for (String key : options.getKeys()) {
 				fOptions.put(key, options.getValue(key));
 			}
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/NullAnnotationsCleanUp.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/NullAnnotationsCleanUp.java
index b50df3b..2f1663f 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/NullAnnotationsCleanUp.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/NullAnnotationsCleanUp.java
@@ -65,9 +65,10 @@
 		IProblemLocation[] locations= null;
 		ArrayList<IProblemLocation> filteredLocations= new ArrayList<>();
 		if (problems != null) {
-			for (int i= 0; i < problems.length; i++) {
-				if (problems[i].getProblemId() == this.handledProblemID)
-					filteredLocations.add(problems[i]);
+			for (IProblemLocation problem : problems) {
+				if (problem.getProblemId() == this.handledProblemID) {
+					filteredLocations.add(problem);
+				}
 			}
 			locations= filteredLocations.toArray(new IProblemLocation[filteredLocations.size()]);
 		}
@@ -142,9 +143,8 @@
 	@Override
 	public int computeNumberOfFixes(CompilationUnit compilationUnit) {
 		int result= 0;
-		IProblem[] problems= compilationUnit.getProblems();
-		for (int i= 0; i < problems.length; i++) {
-			int id= problems[i].getID();
+		for (IProblem problem : compilationUnit.getProblems()) {
+			int id= problem.getID();
 			if (id == this.handledProblemID) {
 				// FIXME search specifically: return param (which??)
 //				if (!QuickFixes.hasExplicitNullnessAnnotation(compilationUnit, problems[i].getSourceStart()))
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/RedundantSemicolonsCleanUp.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/RedundantSemicolonsCleanUp.java
index 72602c2..96ae8f7 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/RedundantSemicolonsCleanUp.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/RedundantSemicolonsCleanUp.java
@@ -213,11 +213,10 @@
 			return null;
 
 		CompilationUnitChange result= new CompilationUnitChange(fName, fCompilationUnit);
-		for (int i= 0; i < fEditGroups.length; i++) {
-			TextEdit[] edits= fEditGroups[i].getTextEdits();
-			String groupName= fEditGroups[i].getName();
-			for (int j= 0; j < edits.length; j++) {
-				TextChangeCompatibility.addTextEdit(result, groupName, edits[j]);
+		for (TextEditGroup editGroup : fEditGroups) {
+			String groupName= editGroup.getName();
+			for (TextEdit edit : editGroup.getTextEdits()) {
+				TextChangeCompatibility.addTextEdit(result, groupName, edit);
 			}
 		}
 		return result;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/UnimplementedCodeCleanUp.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/UnimplementedCodeCleanUp.java
index db6742e..bad8a80 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/UnimplementedCodeCleanUp.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/UnimplementedCodeCleanUp.java
@@ -126,8 +126,8 @@
 		IProblemLocation[] locations= filter(convertProblems(compilationUnit.getProblems()), new int[] { IProblem.AbstractMethodMustBeImplemented, IProblem.EnumConstantMustImplementAbstractMethod });
 
 		HashSet<ASTNode> types= new HashSet<>();
-		for (int i= 0; i < locations.length; i++) {
-			ASTNode type= UnimplementedCodeFix.getSelectedTypeNode(compilationUnit, locations[i]);
+		for (IProblemLocation location : locations) {
+			ASTNode type= UnimplementedCodeFix.getSelectedTypeNode(compilationUnit, location);
 			if (type != null) {
 				types.add(type);
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/UnusedCodeCleanUp.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/UnusedCodeCleanUp.java
index ef63a25..fda8770 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/UnusedCodeCleanUp.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/UnusedCodeCleanUp.java
@@ -189,10 +189,10 @@
 		int result= 0;
 		IProblem[] problems= compilationUnit.getProblems();
 		if (isEnabled(CleanUpConstants.REMOVE_UNUSED_CODE_IMPORTS) && !isEnabled(CleanUpConstants.ORGANIZE_IMPORTS)) {
-			for (int i=0;i<problems.length;i++) {
-				int id= problems[i].getID();
+			for (IProblem problem : problems) {
+				int id= problem.getID();
 				if (id == IProblem.UnusedImport || id == IProblem.DuplicateImport || id == IProblem.ConflictingImport ||
-					    id == IProblem.CannotImportPackage || id == IProblem.ImportNotFound)
+					id == IProblem.CannotImportPackage || id == IProblem.ImportNotFound)
 					result++;
 			}
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/JavadocView.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/JavadocView.java
index e6b6fdb..f337a14 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/JavadocView.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/infoviews/JavadocView.java
@@ -999,9 +999,9 @@
 
 		String base= null;
 		if (nResults > 1) {
-			for (int i= 0; i < result.length; i++) {
+			for (IJavaElement r : result) {
 				HTMLPrinter.startBulletList(buffer);
-				IJavaElement curr= result[i];
+				IJavaElement curr= r;
 				if (curr instanceof IMember || curr instanceof IPackageFragment || curr instanceof IPackageDeclaration || curr.getElementType() == IJavaElement.LOCAL_VARIABLE) {
 					HTMLPrinter.addBullet(buffer, getInfoText(curr, null, null, false));
 					HTMLPrinter.endBulletList(buffer);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarimport/JarImportWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarimport/JarImportWizardPage.java
index 450d157..e460032 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarimport/JarImportWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarimport/JarImportWizardPage.java
@@ -188,12 +188,12 @@
 			@Override
 			protected Object[] getJavaProjects(final IJavaModel model) throws JavaModelException {
 				final Set<IJavaProject> set= new HashSet<>();
-				final IJavaProject[] projects= model.getJavaProjects();
-				for (int index= 0; index < projects.length; index++) {
-					if (JarImportWizard.isValidJavaProject(projects[index])) {
-						final Object[] roots= getPackageFragmentRoots(projects[index]);
-						if (roots.length > 0)
-							set.add(projects[index]);
+				for (IJavaProject project : model.getJavaProjects()) {
+					if (JarImportWizard.isValidJavaProject(project)) {
+						final Object[] roots= getPackageFragmentRoots(project);
+						if (roots.length > 0) {
+							set.add(project);
+						}
 					}
 				}
 				return set.toArray();
@@ -202,12 +202,10 @@
 			@Override
 			protected Object[] getPackageFragmentRoots(final IJavaProject project) throws JavaModelException {
 				final Set<IPackageFragmentRoot> set= new HashSet<>();
-				final IPackageFragmentRoot[] roots= project.getPackageFragmentRoots();
-				for (int offset= 0; offset < roots.length; offset++) {
-					IPackageFragmentRoot root= roots[offset];
+				for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
 					IClasspathEntry entry= root.getRawClasspathEntry();
 					if (JarImportWizard.isValidClassPathEntry(entry)
-							&& root.getResolvedClasspathEntry().getReferencingEntry() == null)
+						&& root.getResolvedClasspathEntry().getReferencingEntry() == null)
 						set.add(root);
 				}
 				return set.toArray();
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 fe65df0..fd66f13 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
@@ -117,8 +117,9 @@
 			String[] locations= settings.getArray(fKey);
 			if (locations == null || locations.length == 0)
 				return;
-			for (int index= 0; index < locations.length; index++)
-				fCombo.add(locations[index]);
+			for (String location : locations) {
+				fCombo.add(location);
+			}
 			fCombo.select(0);
 		}
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/AbstractJarDestinationWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/AbstractJarDestinationWizardPage.java
index 0e08826..3a64d32 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/AbstractJarDestinationWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/AbstractJarDestinationWizardPage.java
@@ -190,8 +190,9 @@
 				return; // ie.- no settings stored
 			if (!fDestinationNamesCombo.getText().equals(directoryNames[0]))
 				fDestinationNamesCombo.add(fDestinationNamesCombo.getText());
-			for (int i= 0; i < directoryNames.length; i++)
-				fDestinationNamesCombo.add(directoryNames[i]);
+			for (String directoryName : directoryNames) {
+				fDestinationNamesCombo.add(directoryName);
+			}
 		}
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/CheckboxTreeAndListGroup.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/CheckboxTreeAndListGroup.java
index d99b904..504e414 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/CheckboxTreeAndListGroup.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/CheckboxTreeAndListGroup.java
@@ -770,15 +770,16 @@
 	protected Object[] filter(ViewerFilter[] filters, Object[] elements) {
 		if (filters != null) {
 			ArrayList<Object> filtered = new ArrayList<>(elements.length);
-			for (int i = 0; i < elements.length; i++) {
+			for (Object element : elements) {
 				boolean add = true;
-				for (int j = 0; j < filters.length; j++) {
-					add = filters[j].select(null, null, elements[i]);
+				for (ViewerFilter filter : filters) {
+					add = filter.select(null, null, element);
 					if (!add)
 						break;
 				}
-				if (add)
-					filtered.add(elements[i]);
+				if (add) {
+					filtered.add(element);
+				}
 			}
 			return filtered.toArray();
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/CreateJarActionDelegate.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/CreateJarActionDelegate.java
index bb7cf0f..030997e 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/CreateJarActionDelegate.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/CreateJarActionDelegate.java
@@ -83,8 +83,8 @@
 
 	private JarPackageData[] readJarPackages(IFile[] descriptions, MultiStatus readStatus) {
 		List<JarPackageData> jarPackagesList= new ArrayList<>(descriptions.length);
-		for (int i= 0; i < descriptions.length; i++) {
-			JarPackageData jarPackage= readJarPackage(descriptions[i], readStatus);
+		for (IFile description : descriptions) {
+			JarPackageData jarPackage= readJarPackage(description, readStatus);
 			if (jarPackage != null)
 				jarPackagesList.add(jarPackage);
 		}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarFileExportOperation.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarFileExportOperation.java
index 049edbe..9f1317c 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarFileExportOperation.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarFileExportOperation.java
@@ -266,8 +266,9 @@
 					addToStatus(ex);
 					continue;
 				}
-				for (int i= 0; i < outputContainers.length; i++)
-					count += getTotalChildCount(outputContainers[i]);
+				for (IContainer outputContainer : outputContainers) {
+					count += getTotalChildCount(outputContainer);
+				}
 
 			}
 		}
@@ -277,11 +278,11 @@
 
 	private int getClassFileCount(IJavaElement[] children) throws JavaModelException {
 		int result= 0;
-		for (int i= 0; i < children.length; i++) {
-			if (children[i] instanceof IClassFile) {
+		for (IJavaElement child : children) {
+			if (child instanceof IClassFile) {
 				result++;
-			} else if (children[i] instanceof IPackageFragment) {
-				IPackageFragment fragment= (IPackageFragment) children[i];
+			} else if (child instanceof IPackageFragment) {
+				IPackageFragment fragment= (IPackageFragment) child;
 				result+= getClassFileCount(fragment.getChildren());
 			}
 		}
@@ -296,11 +297,12 @@
 			return 0;
 		}
 		int count= 0;
-		for (int i= 0; i < members.length; i++) {
-			if (members[i].getType() == IResource.FILE)
+		for (IResource member : members) {
+			if (member.getType() == IResource.FILE) {
 				count++;
-			else
-				count += getTotalChildCount((IContainer)members[i]);
+			} else {
+				count += getTotalChildCount((IContainer) member);
+			}
 		}
 		return count;
 	}
@@ -423,16 +425,15 @@
 			return;
 		}
 
-		Object[] children= fJavaElementContentProvider.getChildren(je);
-		for (int i= 0; i < children.length; i++)
-			exportElement(children[i], progressMonitor);
+		for (Object child : fJavaElementContentProvider.getChildren(je)) {
+			exportElement(child, progressMonitor);
+		}
 	}
 
 	private void exportExternalClassFolder(IPackageFragmentRoot classFolder, IProgressMonitor progressMonitor) throws InterruptedException {
 		try {
-			IJavaElement[] children= classFolder.getChildren();
-			for (int i= 0; i < children.length; i++) {
-				exportExternalClassFolderElement(children[i], classFolder.getPath(), progressMonitor);
+			for (IJavaElement child : classFolder.getChildren()) {
+				exportExternalClassFolderElement(child, classFolder.getPath(), progressMonitor);
 			}
 		} catch (JavaModelException e) {
 			addToStatus(e);
@@ -455,9 +456,8 @@
 				ModalContext.checkCanceled(progressMonitor);
 			}
 		} else if (javaElement instanceof IPackageFragment) {
-			IJavaElement[] children= ((IPackageFragment) javaElement).getChildren();
-			for (int i= 0; i < children.length; i++) {
-				exportExternalClassFolderElement(children[i], classFolderPath, progressMonitor);
+			for (IJavaElement child : ((IPackageFragment) javaElement).getChildren()) {
+				exportExternalClassFolderElement(child, classFolderPath, progressMonitor);
 			}
 		}
 	}
@@ -473,8 +473,9 @@
 				addWarning(Messages.format(JarPackagerMessages.JarFileExportOperation_errorDuringExport, BasicElementLabels.getPathLabel(container.getFullPath(), false)), e);
 				return;
 			}
-			for (int i= 0; i < children.length; i++)
-				exportResource(progressMonitor, children[i], leadingSegmentsToRemove);
+			for (IResource child : children) {
+				exportResource(progressMonitor, child, leadingSegmentsToRemove);
+			}
 		} else if (resource instanceof IFile) {
 			try {
 				IPath destinationPath= resource.getFullPath().removeFirstSegments(leadingSegmentsToRemove);
@@ -505,8 +506,7 @@
 		if (children != null) {
 			IJavaProject javaProject= JavaCore.create(container.getProject());
 			boolean isOnCP= javaProject.isOnClasspath(container);
-			for (int i= 0; i < children.length; i++) {
-				IResource child= children[i];
+			for (IResource child : children) {
 				if (isOnCP || !javaProject.isOnClasspath(child) || isInternalJar(child))
 					exportElement(child, progressMonitor);
 			}
@@ -657,8 +657,9 @@
 				addToStatus(ex);
 				continue;
 			}
-			for (int i= 0; i < outputContainers.length; i++)
-				exportResource(progressMonitor, outputContainers[i], outputContainers[i].getFullPath().segmentCount());
+			for (IContainer outputContainer : outputContainers) {
+				exportResource(progressMonitor, outputContainer, outputContainer.getFullPath().segmentCount());
+			}
 
 		}
 	}
@@ -666,10 +667,9 @@
 	private IContainer[] getOutputContainers(IJavaProject javaProject) throws CoreException {
 		Set<IPath> outputPaths= new HashSet<>();
 		boolean includeDefaultOutputPath= false;
-		IPackageFragmentRoot[] roots= javaProject.getPackageFragmentRoots();
-		for (int i= 0; i < roots.length; i++) {
-			if (roots[i] != null) {
-				IClasspathEntry cpEntry= roots[i].getRawClasspathEntry();
+		for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
+			if (root != null) {
+				IClasspathEntry cpEntry = root.getRawClasspathEntry();
 				if (cpEntry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
 					IPath location= cpEntry.getOutputLocation();
 					if (location != null)
@@ -798,9 +798,11 @@
 	private Iterator<IResource> getClassesIn(IContainer classContainer) throws CoreException {
 		IResource[] resources= classContainer.members();
 		List<IResource> files= new ArrayList<>(resources.length);
-		for (int i= 0; i < resources.length; i++)
-			if (resources[i].getType() == IResource.FILE && isClassFile(resources[i]))
-				files.add(resources[i]);
+		for (IResource resource : resources) {
+			if (resource.getType() == IResource.FILE && isClassFile(resource)) {
+				files.add(resource);
+			}
+		}
 		return files.iterator();
 	}
 
@@ -846,9 +848,9 @@
 		IClassFileReader cfReader= null;
 		IResource[] members= container.members();
 		Map<String, ArrayList<IResource>> map= new HashMap<>(members.length);
-		for (int i= 0;  i < members.length; i++) {
-			if (isClassFile(members[i])) {
-				IFile classFile= (IFile)members[i];
+		for (IResource member : members) {
+			if (isClassFile(member)) {
+				IFile classFile = (IFile) member;
 				URI location= classFile.getLocationURI();
 				if (location != null) {
 					InputStream contents= null;
@@ -869,10 +871,10 @@
 						ISourceAttribute sourceAttribute= cfReader.getSourceFileAttribute();
 						if (sourceAttribute == null) {
 							/*
-							 * Can't fully build the map because one or more
-							 * class file does not contain the name of its
-							 * source file.
-							 */
+							* Can't fully build the map because one or more
+							* class file does not contain the name of its
+							* source file.
+							*/
 							addWarning(Messages.format(
 								JarPackagerMessages.JarFileExportOperation_classFileWithoutSourceFileAttribute,
 								BasicElementLabels.getURLPart(Resources.getLocationString(classFile))), null);
@@ -1156,10 +1158,9 @@
 
 	private void buildProjects(IProgressMonitor progressMonitor) {
 		Set<IProject> builtProjects= new HashSet<>(10);
-		Object[] elements= fJarPackage.getElements();
-		for (int i= 0; i < elements.length; i++) {
+		for (Object e : fJarPackage.getElements()) {
 			IProject project= null;
-			Object element= elements[i];
+			Object element= e;
 			if (element instanceof IResource)
 				project= ((IResource)element).getProject();
 			else if (element instanceof IJavaElement)
@@ -1187,10 +1188,10 @@
 	 * @throws CoreException import org.eclipse.core.runtime.CoreException if there's a marker problem
 	 */
 	private boolean hasCompileErrors(IResource resource) throws CoreException {
-		IMarker[] problemMarkers= resource.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE);
-		for (int i= 0; i < problemMarkers.length; i++) {
-			if (problemMarkers[i].getAttribute(IMarker.SEVERITY, -1) == IMarker.SEVERITY_ERROR)
+		for (IMarker problemMarker : resource.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE)) {
+			if (problemMarker.getAttribute(IMarker.SEVERITY, -1) == IMarker.SEVERITY_ERROR) {
 				return true;
+			}
 		}
 		return false;
 	}
@@ -1204,10 +1205,10 @@
 	 * @throws CoreException import org.eclipse.core.runtime.CoreException if there's a marker problem
 	 */
 	private boolean hasCompileWarnings(IResource resource) throws CoreException {
-		IMarker[] problemMarkers= resource.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE);
-		for (int i= 0; i < problemMarkers.length; i++) {
-			if (problemMarkers[i].getAttribute(IMarker.SEVERITY, -1) == IMarker.SEVERITY_WARNING)
+		for (IMarker problemMarker : resource.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, true, IResource.DEPTH_INFINITE)) {
+			if (problemMarker.getAttribute(IMarker.SEVERITY, -1) == IMarker.SEVERITY_WARNING) {
 				return true;
+			}
 		}
 		return false;
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarManifestWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarManifestWizardPage.java
index 3cbf8e1..2b06572 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarManifestWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarManifestWizardPage.java
@@ -480,9 +480,10 @@
 				// null
 			}
 		}
-		for (int i= 0; i < fMainTypes.length; i++) {
-			if (fMainTypes[i].getFullyQualifiedName().equals(name))
-			 return fMainTypes[i];
+		for (IType mainType : fMainTypes) {
+			if (mainType.getFullyQualifiedName().equals(name)) {
+				return mainType;
+			}
 		}
 		return null;
 	}
@@ -933,8 +934,8 @@
 			@Override
 			public IStatus validate(Object[] selection) {
 				StatusInfo res= new StatusInfo();
-				for (int i= 0; i < selection.length; i++) {
-					if (!(selection[i] instanceof IPackageFragment)) {
+				for (Object s : selection) {
+					if (!(s instanceof IPackageFragment)) {
 						res.setError(JarPackagerMessages.JarManifestWizardPage_error_mustContainPackages);
 						return res;
 					}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageWizardPage.java
index e1e88ea..189a5d4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageWizardPage.java
@@ -483,10 +483,9 @@
 		try {
 			service.connect();
 			final Set<IProject> set= new HashSet<>();
-			final Object[] elements= fJarPackage.getElements();
-			for (int index= 0; index < elements.length; index++) {
-				if (elements[index] instanceof IAdaptable) {
-					final IAdaptable adaptable= (IAdaptable) elements[index];
+			for (Object element : fJarPackage.getElements()) {
+				if (element instanceof IAdaptable) {
+					final IAdaptable adaptable= (IAdaptable) element;
 					final IResource resource= adaptable.getAdapter(IResource.class);
 					if (resource != null)
 						set.add(resource.getProject());
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageWriter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageWriter.java
index d8eee4d..3a89171 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageWriter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackageWriter.java
@@ -218,9 +218,7 @@
 		selectedElements.setAttribute("exportClassFiles", "" + jarPackage.areClassFilesExported()); //$NON-NLS-2$ //$NON-NLS-1$
 		selectedElements.setAttribute("exportOutputFolder", "" + jarPackage.areOutputFoldersExported()); //$NON-NLS-2$ //$NON-NLS-1$
 		selectedElements.setAttribute("exportJavaFiles", "" + jarPackage.areJavaFilesExported()); //$NON-NLS-2$ //$NON-NLS-1$
-		Object[] elements= jarPackage.getElements();
-		for (int i= 0; i < elements.length; i++) {
-			Object element= elements[i];
+		for (Object element : jarPackage.getElements()) {
 			if (element instanceof IResource)
 				add((IResource)element, selectedElements, document);
 			else if (element instanceof IJavaElement)
@@ -232,9 +230,7 @@
 	private void xmlWriteSelectedProjects(JarPackageData jarPackage, Document document, Element xmlJarDesc) throws DOMException {
 		Element selectedElements= document.createElement("selectedProjects"); //$NON-NLS-1$
 		xmlJarDesc.appendChild(selectedElements);
-		Object[] elements= jarPackage.getRefactoringProjects();
-		for (int index= 0; index < elements.length; index++) {
-			Object element= elements[index];
+		for (Object element : jarPackage.getRefactoringProjects()) {
 			if (element instanceof IResource)
 				add((IResource)element, selectedElements, document);
 		}
@@ -280,10 +276,10 @@
 	}
 
 	private void add(IPackageFragment[] packages, Element parent, Document document) {
-		for (int i= 0; i < packages.length; i++) {
+		for (IPackageFragment p : packages) {
 			Element pkg= document.createElement("package"); //$NON-NLS-1$
 			parent.appendChild(pkg);
-			pkg.setAttribute("handleIdentifier", packages[i].getHandleIdentifier()); //$NON-NLS-1$
+			pkg.setAttribute("handleIdentifier", p.getHandleIdentifier()); //$NON-NLS-1$
 		}
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackagerUtil.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackagerUtil.java
index 6bafe92..a73c79a 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackagerUtil.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarPackagerUtil.java
@@ -128,8 +128,7 @@
 		if (elements == null)
 			return null;
 		List<IResource> selectedResources= new ArrayList<>(elements.length);
-		for (int i= 0; i < elements.length; i++) {
-			Object element= elements[i];
+		for (Object element : elements) {
 			if (element instanceof IJavaElement) {
 				selectedResources.add(((IJavaElement)element).getResource());
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarRefactoringDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarRefactoringDialog.java
index b76ee8f..94acea5 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarRefactoringDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/JarRefactoringDialog.java
@@ -110,8 +110,8 @@
 			final RefactoringDescriptorProxy[] descriptors= fHistoryControl.getCheckedDescriptors();
 			Set<IProject> set= new HashSet<>();
 			IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
-			for (int index= 0; index < descriptors.length; index++) {
-				final String project= descriptors[index].getProject();
+			for (RefactoringDescriptorProxy descriptor : descriptors) {
+				final String project= descriptor.getProject();
 				if (project != null && !"".equals(project)) //$NON-NLS-1$
 					set.add(root.getProject(project));
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/ManifestProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/ManifestProvider.java
index ee8bd3fc..b64052c 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/ManifestProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackager/ManifestProvider.java
@@ -95,21 +95,21 @@
 			manifest.getMainAttributes().put(Attributes.Name.SEALED, SEALED_VALUE);
 			IPackageFragment[] packages= jarPackage.getPackagesToUnseal();
 			if (packages != null) {
-				for (int i= 0; i < packages.length; i++) {
+				for (IPackageFragment p : packages) {
 					Attributes attributes= new Attributes();
 					attributes.put(Attributes.Name.SEALED, UNSEALED_VALUE);
-					manifest.getEntries().put(getInManifestFormat(packages[i]), attributes);
+					manifest.getEntries().put(getInManifestFormat(p), attributes);
 				}
 			}
 		}
 		else {
 			IPackageFragment[] packages= jarPackage.getPackagesToSeal();
 			if (packages != null)
-				for (int i= 0; i < packages.length; i++) {
+				for (IPackageFragment p : packages) {
 					Attributes attributes= new Attributes();
 					attributes.put(Attributes.Name.SEALED, SEALED_VALUE);
-					manifest.getEntries().put(getInManifestFormat(packages[i]), attributes);
-				}
+					manifest.getEntries().put(getInManifestFormat(p), attributes);
+			}
 		}
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarAntExporter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarAntExporter.java
index 488c886..3f051c3 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarAntExporter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarAntExporter.java
@@ -196,11 +196,11 @@
 
 		ArrayList<IPath> userEntries= new ArrayList<>(entries.length);
 		boolean isModularConfig= JavaRuntime.isModularConfiguration(configuration);
-		for (int i= 0; i < entries.length; i++) {
-			int classPathProperty= entries[i].getClasspathProperty();
+		for (IRuntimeClasspathEntry cpentry : entries) {
+			int classPathProperty= cpentry.getClasspathProperty();
 			if ((!isModularConfig && classPathProperty == IRuntimeClasspathEntry.USER_CLASSES)
-					|| (isModularConfig && (classPathProperty == IRuntimeClasspathEntry.CLASS_PATH || classPathProperty == IRuntimeClasspathEntry.MODULE_PATH))) {
-				String location= entries[i].getLocation();
+				|| (isModularConfig && (classPathProperty == IRuntimeClasspathEntry.CLASS_PATH || classPathProperty == IRuntimeClasspathEntry.MODULE_PATH))) {
+				String location= cpentry.getLocation();
 				if (location != null) {
 					IPath entry= Path.fromOSString(location);
 					if (!userEntries.contains(entry)) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarManifestProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarManifestProvider.java
index 58467ab..b9313c6 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarManifestProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarManifestProvider.java
@@ -18,7 +18,6 @@
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Enumeration;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.jar.Attributes;
@@ -62,9 +61,7 @@
 			List<ZipFile> openZips= new ArrayList<>();
 			try {
 				List<Manifest> otherManifests= new ArrayList<>();
-				Object[] elements= jarPackage.getElements();
-				for (int i= 0; i < elements.length; i++) {
-					Object element= elements[i];
+				for (Object element : jarPackage.getElements()) {
 					if (element instanceof IPackageFragmentRoot && ((IPackageFragmentRoot) element).isArchive()) {
 						ZipFile zip= JarPackagerUtil.getArchiveFile(((IPackageFragmentRoot) element).getPath());
 						openZips.add(zip);
@@ -93,8 +90,7 @@
 				}
 				result= merge(ownManifest, otherManifests);
 			} finally {
-				for (Iterator<ZipFile> iter= openZips.iterator(); iter.hasNext(); ) {
-					ZipFile file= iter.next();
+				for (ZipFile file : openZips) {
 					try {
 						file.close();
 					} catch (IOException e) {
@@ -118,11 +114,9 @@
 	private Manifest merge(Manifest ownManifest, List<Manifest> otherManifests) {
 		Manifest mergedManifest= new Manifest(ownManifest);
 		Map<String, Attributes> mergedEntries= mergedManifest.getEntries();
-		for (Iterator<Manifest> iter= otherManifests.iterator(); iter.hasNext();) {
-			Manifest otherManifest= iter.next();
+		for (Manifest otherManifest : otherManifests) {
 			Map<String, Attributes> otherEntries= otherManifest.getEntries();
-			for (Iterator<String> iterator= otherEntries.keySet().iterator(); iterator.hasNext();) {
-				String attributeName= iterator.next();
+			for (String attributeName : otherEntries.keySet()) {
 				if (mergedEntries.containsKey(attributeName)) {
 					// TODO: WARNING
 				} else {
@@ -178,20 +172,20 @@
 			manifest.getMainAttributes().put(Attributes.Name.SEALED, SEALED_VALUE);
 			IPackageFragment[] packages= jarPackage.getPackagesToUnseal();
 			if (packages != null) {
-				for (int i= 0; i < packages.length; i++) {
+				for (IPackageFragment p : packages) {
 					Attributes attributes= new Attributes();
 					attributes.put(Attributes.Name.SEALED, UNSEALED_VALUE);
-					manifest.getEntries().put(getInManifestFormat(packages[i]), attributes);
+					manifest.getEntries().put(getInManifestFormat(p), attributes);
 				}
 			}
 		} else {
 			IPackageFragment[] packages= jarPackage.getPackagesToSeal();
 			if (packages != null)
-				for (int i= 0; i < packages.length; i++) {
+				for (IPackageFragment p : packages) {
 					Attributes attributes= new Attributes();
 					attributes.put(Attributes.Name.SEALED, SEALED_VALUE);
-					manifest.getEntries().put(getInManifestFormat(packages[i]), attributes);
-				}
+					manifest.getEntries().put(getInManifestFormat(p), attributes);
+			}
 		}
 	}
 
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarPackageWizard.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarPackageWizard.java
index f4c7492..a1c3f6c 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarPackageWizard.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarPackageWizard.java
@@ -236,9 +236,9 @@
 	}
 
 	private boolean hasArchive(Object[] elements) {
-		for (int i= 0; i < elements.length; i++) {
-			if (elements[i] instanceof IPackageFragmentRoot) {
-				IPackageFragmentRoot root= (IPackageFragmentRoot) elements[i];
+		for (Object element : elements) {
+			if (element instanceof IPackageFragmentRoot) {
+				IPackageFragmentRoot root= (IPackageFragmentRoot) element;
 				if (root.isArchive())
 					return true;
 			}
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 0b564e9..0a20aa2 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
@@ -673,10 +673,8 @@
 		try {
 			ILaunchManager manager= DebugPlugin.getDefault().getLaunchManager();
 			ILaunchConfigurationType type= manager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
-			ILaunchConfiguration[] launchconfigs= manager.getLaunchConfigurations(type);
 
-			for (int i= 0; i < launchconfigs.length; i++) {
-				ILaunchConfiguration launchconfig= launchconfigs[i];
+			for (ILaunchConfiguration launchconfig : manager.getLaunchConfigurations(type)) {
 				if (!launchconfig.getAttribute(IDebugUIConstants.ATTR_PRIVATE, false)) {
 					String projectName= launchconfig.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, ""); //$NON-NLS-1$
 					result.add(new ExistingLaunchConfigurationElement(launchconfig, projectName));
@@ -714,10 +712,9 @@
 
 			if (jproject != null) {
 				try {
-					String[] childProjectNames= jproject.getRequiredProjectNames();
-					for (int i= 0; i < childProjectNames.length; i++) {
-						if (!projectNames.contains(childProjectNames[i])) {
-							projectNames.add(childProjectNames[i]);
+					for (String childProjectName : jproject.getRequiredProjectNames()) {
+						if (!projectNames.contains(childProjectName)) {
+							projectNames.add(childProjectName);
 						}
 					}
 				} catch (JavaModelException e) {
@@ -759,12 +756,11 @@
 
 		boolean isModularConfig= JavaRuntime.isModularConfiguration(configuration);
 		ArrayList<IPath> userEntries= new ArrayList<>(entries.length);
-		for (int i= 0; i < entries.length; i++) {
-			int classPathProperty= entries[i].getClasspathProperty();
+		for (IRuntimeClasspathEntry cpentry : entries) {
+			int classPathProperty= cpentry.getClasspathProperty();
 			if ((!isModularConfig && classPathProperty == IRuntimeClasspathEntry.USER_CLASSES)
-					|| (isModularConfig && (classPathProperty == IRuntimeClasspathEntry.CLASS_PATH || classPathProperty == IRuntimeClasspathEntry.MODULE_PATH))) {
-
-				String location= entries[i].getLocation();
+				|| (isModularConfig && (classPathProperty == IRuntimeClasspathEntry.CLASS_PATH || classPathProperty == IRuntimeClasspathEntry.MODULE_PATH))) {
+				String location= cpentry.getLocation();
 				if (location != null) {
 					IPath entry= Path.fromOSString(location);
 					if (!userEntries.contains(entry)) {
@@ -803,8 +799,7 @@
 
 		IJavaProject[] searchOrder= getProjectSearchOrder(projectName);
 
-		for (int i= 0; i < classpathEntries.length; i++) {
-			IPath entry= classpathEntries[i];
+		for (IPath entry : classpathEntries) {
 			IPackageFragmentRoot[] elements= findRootsForClasspath(entry, searchOrder);
 			if (elements == null) {
 				status.add(new Status(IStatus.WARNING, JavaUI.ID_PLUGIN, Messages.format(FatJarPackagerMessages.FatJarPackageWizardPage_error_missingClassFile, BasicElementLabels.getPathLabel(entry, false))));
@@ -817,8 +812,8 @@
 	}
 
 	private static IPackageFragmentRoot[] findRootsForClasspath(IPath entry, IJavaProject[] searchOrder) {
-		for (int i= 0; i < searchOrder.length; i++) {
-			IPackageFragmentRoot[] elements= findRootsInProject(entry, searchOrder[i]);
+		for (IJavaProject s : searchOrder) {
+			IPackageFragmentRoot[] elements= findRootsInProject(entry, s);
 			if (elements.length != 0) {
 				return elements;
 			}
@@ -830,9 +825,7 @@
 		ArrayList<IPackageFragmentRoot> result= new ArrayList<>();
 
 		try {
-			IPackageFragmentRoot[] roots= project.getPackageFragmentRoots();
-			for (int i= 0; i < roots.length; i++) {
-				IPackageFragmentRoot packageFragmentRoot= roots[i];
+			for (IPackageFragmentRoot packageFragmentRoot : project.getPackageFragmentRoots()) {
 				if (isRootAt(packageFragmentRoot, entry))
 					result.add(packageFragmentRoot);
 			}
@@ -886,10 +879,10 @@
 		IJavaSearchScope searchScope= JavaSearchScopeFactory.getInstance().createJavaSearchScope(resources.toArray(new IResource[resources.size()]), true);
 		MainMethodSearchEngine engine= new MainMethodSearchEngine();
 		try {
-			IType[] mainTypes= engine.searchMainMethods(context, searchScope, 0);
-			for (int i= 0; i < mainTypes.length; i++) {
-				if (mainTypes[i].getFullyQualifiedName().equals(name))
-					return mainTypes[i];
+			for (IType mainType : engine.searchMainMethods(context, searchScope, 0)) {
+				if (mainType.getFullyQualifiedName().equals(name)) {
+					return mainType;
+				}
 			}
 		} catch (InvocationTargetException ex) {
 			JavaPlugin.log(ex);
@@ -936,8 +929,9 @@
 			if (directoryNames != null) {
 				if (!fAntScriptNamesCombo.getText().equals(directoryNames[0]))
 					fAntScriptNamesCombo.add(fAntScriptNamesCombo.getText());
-				for (int i= 0; i < directoryNames.length; i++)
-					fAntScriptNamesCombo.add(directoryNames[i]);
+				for (String directoryName : directoryNames) {
+					fAntScriptNamesCombo.add(directoryName);
+				}
 			}
 
 			// LIBRARY HANDLING
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlAntExporter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlAntExporter.java
index 67ebe73..b85fee3 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlAntExporter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlAntExporter.java
@@ -136,11 +136,10 @@
 		attribute.setAttribute("name", JIJConstants.REDIRECTED_CLASS_PATH_MANIFEST_NAME); //$NON-NLS-1$ 
 		StringBuilder rsrcClassPath= new StringBuilder();
 		rsrcClassPath.append(JIJConstants.CURRENT_DIR); 
-		for (int i= 0; i < sourceInfos.length; i++) {
-			SourceInfo sourceInfo= sourceInfos[i];
+		for (SourceInfo sourceInfo : sourceInfos) {
 			if (sourceInfo.isJar) {
 				rsrcClassPath.append(" ") //$NON-NLS-1$
-						.append(new File(sourceInfo.absPath).getName());
+					.append(new File(sourceInfo.absPath).getName());
 			}
 		}
 		attribute.setAttribute("value", rsrcClassPath.toString()); //$NON-NLS-1$  
@@ -150,8 +149,7 @@
 		zipfileset.setAttribute("src", FatJarRsrcUrlBuilder.JAR_RSRC_LOADER_ZIP); //$NON-NLS-1$ 
 		jar.appendChild(zipfileset);
 		
-		for (int i= 0; i < sourceInfos.length; i++) {
-			SourceInfo sourceInfo= sourceInfos[i];
+		for (SourceInfo sourceInfo : sourceInfos) {
 			if (sourceInfo.isJar) {
 				File jarFile= new File(sourceInfo.absPath);
 				Element fileset= document.createElement("zipfileset"); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlManifestProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlManifestProvider.java
index 5b892da..5e12c1d 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlManifestProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/FatJarRsrcUrlManifestProvider.java
@@ -18,7 +18,6 @@
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.jar.Attributes;
 import java.util.jar.Manifest;
 
@@ -41,9 +40,7 @@
 
 	private void setManifestRsrcClasspath(Manifest ownManifest, JarPackageData jarPackage) {
 		ArrayList<String> jarNames= new ArrayList<>();
-		Object[] elements= jarPackage.getElements();
-		for (int i= 0; i < elements.length; i++) {
-			Object element= elements[i];
+		for (Object element : jarPackage.getElements()) {
 			if (element instanceof IPackageFragmentRoot && ((IPackageFragmentRoot) element).isArchive()) {
 				String jarName= ((IPackageFragmentRoot) element).getPath().toFile().getName();
 				while (jarNames.contains(jarName)) {
@@ -59,8 +56,7 @@
 	public String getManifestRsrcClasspath(ArrayList<String> jarNames) {
 		StringBuilder result= new StringBuilder();
 		result.append(JIJConstants.CURRENT_DIR); 
-		for (Iterator<String> iterator= jarNames.iterator(); iterator.hasNext();) {
-			String jarName= iterator.next();
+		for (String jarName : jarNames) {
 			try {
 				jarName= URLEncoder.encode(jarName, "UTF-8"); //$NON-NLS-1$
 			} catch (UnsupportedEncodingException e) {
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackFatJarAntExporter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackFatJarAntExporter.java
index 464f25a..db00596 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackFatJarAntExporter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackFatJarAntExporter.java
@@ -101,8 +101,7 @@
 			attribute.setAttribute("value", "."); //$NON-NLS-1$ //$NON-NLS-2$
 			manifest.appendChild(attribute);
 
-			for (int i= 0; i < sourceInfos.length; i++) {
-				SourceInfo sourceInfo= sourceInfos[i];
+			for (SourceInfo sourceInfo : sourceInfos) {
 				if (sourceInfo.isJar) {
 					Element zipfileset= document.createElement("zipfileset"); //$NON-NLS-1$
 					zipfileset.setAttribute("src", substituteBaseDirs(sourceInfo.absPath)); //$NON-NLS-1$
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarAntExporter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarAntExporter.java
index 81fb287..b766ef4 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarAntExporter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarAntExporter.java
@@ -104,19 +104,17 @@
 			attribute.setAttribute("name", "Class-Path"); //$NON-NLS-1$ //$NON-NLS-2$s
 			StringBuilder classPath= new StringBuilder();
 			classPath.append("."); //$NON-NLS-1$
-			for (int i= 0; i < sourceInfos.length; i++) {
-				SourceInfo sourceInfo= sourceInfos[i];
+			for (SourceInfo sourceInfo : sourceInfos) {
 				if (sourceInfo.isJar) {
 					classPath.append(" ").append(subfolder).append("/") //$NON-NLS-1$ //$NON-NLS-2$
-							.append(new File(sourceInfo.absPath).getName());
+						.append(new File(sourceInfo.absPath).getName());
 				}
 			}
 			attribute.setAttribute("value", classPath.toString()); //$NON-NLS-1$
 			manifest.appendChild(attribute);
 
 			// add folders
-			for (int i= 0; i < sourceInfos.length; i++) {
-				SourceInfo sourceInfo= sourceInfos[i];
+			for (SourceInfo sourceInfo : sourceInfos) {
 				if (!sourceInfo.isJar) {
 					Element fileset= document.createElement("fileset"); //$NON-NLS-1$
 					fileset.setAttribute("dir", substituteBaseDirs(sourceInfo.absPath)); //$NON-NLS-1$
@@ -134,8 +132,7 @@
 			target.appendChild(mkdir);
 
 			// add libraries
-			for (int i= 0; i < sourceInfos.length; i++) {
-				SourceInfo sourceInfo= sourceInfos[i];
+			for (SourceInfo sourceInfo : sourceInfos) {
 				if (sourceInfo.isJar) {
 					Element copy= document.createElement("copy"); //$NON-NLS-1$
 					copy.setAttribute("file", substituteBaseDirs(sourceInfo.absPath)); //$NON-NLS-1$
@@ -143,10 +140,8 @@
 					target.appendChild(copy);
 				}
 			}
-
 			// add folders
-			for (int i= 0; i < sourceInfos.length; i++) {
-				SourceInfo sourceInfo= sourceInfos[i];
+			for (SourceInfo sourceInfo : sourceInfos) {
 				if (!sourceInfo.isJar) {
 				}
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarBuilder.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarBuilder.java
index 9e9dd24..7651eda 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarBuilder.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/jarpackagerfat/UnpackJarBuilder.java
@@ -24,7 +24,6 @@
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Set;
 import java.util.zip.ZipFile;
 
@@ -96,9 +95,7 @@
 	@Override
 	public String getManifestClasspath() {
 		ArrayList<String> renamedJarNames= new ArrayList<>();
-		Object[] elements= fJarPackage.getElements();
-		for (int i= 0; i < elements.length; i++) {
-			Object element= elements[i];
+		for (Object element : fJarPackage.getElements()) {
 			if (element instanceof IPackageFragmentRoot && ((IPackageFragmentRoot)element).isArchive()) {
 				String jarName= ((IPackageFragmentRoot)element).getPath().toFile().getName();
 				while (renamedJarNames.contains(jarName)) {
@@ -109,8 +106,7 @@
 		}
 		StringBuilder result= new StringBuilder();
 		result.append("."); //$NON-NLS-1$
-		for (Iterator<String> iterator= renamedJarNames.iterator(); iterator.hasNext();) {
-			String jarName= iterator.next();
+		for (String jarName : renamedJarNames) {
 			result.append(" ").append(fSubfolder).append("/").append(jarName); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		return result.toString();
@@ -145,12 +141,13 @@
 			if (!allowOverwrite)
 				if (parent == null || !JarPackagerUtil.askForOverwriteFolderPermission(parent, fSubfolderPath, true))
 					throw JarPackagerUtil.createCoreException("Folder '" + folder.getAbsolutePath() + "' exists and should not be overwritten", null); //$NON-NLS-1$ //$NON-NLS-2$
-			File[] jarFiles= folder.listFiles();
-			for (int i= 0; i < jarFiles.length; i++) {
-				if (!jarFiles[i].isFile())
-					throw JarPackagerUtil.createCoreException("Subfolder '" + jarFiles[i].getAbsolutePath() + "' exists", null); //$NON-NLS-1$ //$NON-NLS-2$
-				if (!jarFiles[i].delete())
-					throw JarPackagerUtil.createCoreException("Could not delete file '" + jarFiles[i].getAbsolutePath() + "'", null); //$NON-NLS-1$ //$NON-NLS-2$
+			for (File jarFile : folder.listFiles()) {
+				if (!jarFile.isFile()) {
+					throw JarPackagerUtil.createCoreException("Subfolder '" + jarFile.getAbsolutePath() + "' exists", null); //$NON-NLS-1$ //$NON-NLS-2$
+				}
+				if (!jarFile.delete()) {
+					throw JarPackagerUtil.createCoreException("Could not delete file '" + jarFile.getAbsolutePath() + "'", null); //$NON-NLS-1$ //$NON-NLS-2$
+				}
 			}
 		}
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/ContributedJavadocWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/ContributedJavadocWizardPage.java
index d97a64f..f11c3e6 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/ContributedJavadocWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/ContributedJavadocWizardPage.java
@@ -161,18 +161,15 @@
 	public static ContributedJavadocWizardPage[] getContributedPages(JavadocOptionsManager store) {
 		ArrayList<ContributedJavadocWizardPage> pages= new ArrayList<>();
 
-		IConfigurationElement[] elements= Platform.getExtensionRegistry().getConfigurationElementsFor(JavaUI.ID_PLUGIN, ATT_EXTENSION);
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement curr= elements[i];
+		for (IConfigurationElement curr : Platform.getExtensionRegistry().getConfigurationElementsFor(JavaUI.ID_PLUGIN, ATT_EXTENSION)) {
 			String id= curr.getAttribute(ATT_ID);
 			String description= curr.getAttribute(ATT_DESCRIPTION);
 			String pageClassName= curr.getAttribute(ATT_PAGE_CLASS);
-
 			if (id == null || description == null || pageClassName == null) {
 				JavaPlugin.logErrorMessage("Invalid extension " + curr.toString()); //$NON-NLS-1$
 				continue;
 			}
-			pages.add(new ContributedJavadocWizardPage(elements[i], store));
+			pages.add(new ContributedJavadocWizardPage(curr, store));
 		}
 		return pages.toArray(new ContributedJavadocWizardPage[pages.size()]);
 	}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocConsoleLineTracker.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocConsoleLineTracker.java
index 0c979fc..5a06e1a 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocConsoleLineTracker.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocConsoleLineTracker.java
@@ -66,18 +66,14 @@
 		@Override
 		public void linkActivated() {
 			try {
-				IFile[] files= ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(URIUtil.toURI(fExternalPath.makeAbsolute()));
-				if (files.length > 0) {
-					for (int i = 0; i < files.length; i++) {
-						IFile curr= files[0];
-						IJavaElement element= JavaCore.create(curr);
-						if (element != null && element.exists()) {
-							IEditorPart part= JavaUI.openInEditor(element, true, false);
-							if (part instanceof ITextEditor) {
-								revealLine((ITextEditor) part, fLineNumber);
-							}
-							return;
+				for (IFile curr : ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(URIUtil.toURI(fExternalPath.makeAbsolute()))) {
+					IJavaElement element= JavaCore.create(curr);
+					if (element != null && element.exists()) {
+						IEditorPart part= JavaUI.openInEditor(element, true, false);
+						if (part instanceof ITextEditor) {
+							revealLine((ITextEditor) part, fLineNumber);
 						}
+						return;
 					}
 				}
 			} catch (BadLocationException e) {
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 8633ffe..e2a9aa1 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
@@ -215,8 +215,8 @@
 	 */
 	private IJavaProject getSingleProjectFromInitialSelection() {
 		IJavaProject res= null;
-		for (int i= 0; i < fInitialElements.length; i++) {
-			IJavaProject curr= fInitialElements[i].getJavaProject();
+		for (IJavaElement initialElement : fInitialElements) {
+			IJavaProject curr= initialElement.getJavaProject();
 			if (res == null) {
 				res= curr;
 			} else if (!res.equals(curr)) {
@@ -420,11 +420,9 @@
 		String extraOptions= element.getAttribute(EXTRAOPTIONS);
 		if (extraOptions.length() > 0) {
 			ExecutionArguments tokens= new ExecutionArguments("", extraOptions); //$NON-NLS-1$
-			String[] args= tokens.getProgramArgumentsArray();
-
+			
 			boolean vmarg= false;
-			for (int i= 0; i < args.length; i++) {
-				String curr= args[i];
+			for (String curr : tokens.getProgramArgumentsArray()) {
 				if (curr.length() > 0 && curr.charAt(0) == '-') {
 					// an command
 					vmarg=(curr.length() > 1 && curr.charAt(1) == 'J');
@@ -487,14 +485,12 @@
 
 		ArrayList<IContainer> res= new ArrayList<>();
 
-		String[] strings= sourcePaths.split(File.pathSeparator);
-		for (int i= 0; i < strings.length; i++) {
-			IPath path= makeAbsolutePathFromRelative(new Path(strings[i].trim()));
+		for (String string : sourcePaths.split(File.pathSeparator)) {
+			IPath path= makeAbsolutePathFromRelative(new Path(string.trim()));
 			if (path != null) {
 				IContainer[] containers= root.findContainersForLocationURI(URIUtil.toURI(path.makeAbsolute()));
 				res.addAll(Arrays.asList(containers));
 			}
-
 		}
 		return res.toArray(new IContainer[res.size()]);
 	}
@@ -510,8 +506,7 @@
 			StringTokenizer tokenizer= new StringTokenizer(packagenames, ","); //$NON-NLS-1$
 			while (tokenizer.hasMoreTokens()) {
 				IPath relPackagePath= new Path(tokenizer.nextToken().trim().replace('.', '/'));
-				for (int i= 0; i < containers.length; i++) {
-					IContainer curr= containers[i];
+				for (IContainer curr : containers) {
 					IResource resource= curr.findMember(relPackagePath);
 					if (resource != null) {
 						IJavaElement javaElem= JavaCore.create(resource);
@@ -535,9 +530,8 @@
 					IPath path= makeAbsolutePathFromRelative(new Path(name));
 					//if unable to create an absolute path to the resource skip it
 					if (path != null) {
-						IFile[] files= root.findFilesForLocationURI(URIUtil.toURI(path.makeAbsolute()));
-						for (int i= 0; i < files.length; i++) {
-							IJavaElement el= JavaCore.createCompilationUnitFrom(files[i]);
+						for (IFile file : root.findFilesForLocationURI(URIUtil.toURI(path.makeAbsolute()))) {
+							IJavaElement el= JavaCore.createCompilationUnitFrom(file);
 							if (el != null) {
 								res.add(el);
 							}
@@ -763,9 +757,9 @@
 				toolArgs.add(fStylesheet);
 			}
 
-			for (int i= 0; i < fHRefs.length; i++) {
+			for (String fHRef : fHRefs) {
 				toolArgs.add("-link"); //$NON-NLS-1$
-				toolArgs.add(fHRefs[i]);
+				toolArgs.add(fHRef);
 			}
 
 		} //end standard options
@@ -792,8 +786,7 @@
 			toolArgs.add(fOverview);
 		}
 
-		for (int i= 0; i < fSelectedElements.length; i++) {
-			IJavaElement curr= fSelectedElements[i];
+		for (IJavaElement curr : fSelectedElements) {
 			if (curr instanceof IPackageFragment) {
 				toolArgs.add(curr.getElementName());
 			} else if (curr instanceof ICompilationUnit) {
@@ -1115,10 +1108,9 @@
 			return false;
 		}
 
-		IJavaElement[] elements= root.getChildren();
-		for (int i= 0; i < elements.length; i++) {
-			if (elements[i] instanceof IPackageFragment) {
-				IPackageFragment fragment= (IPackageFragment) elements[i];
+		for (IJavaElement element : root.getChildren()) {
+			if (element instanceof IPackageFragment) {
+				IPackageFragment fragment= (IPackageFragment) element;
 				if (containsCompilationUnits(fragment)) {
 					return true;
 				}
@@ -1168,12 +1160,9 @@
 			}
 		}
 
-		IVMInstallType[] jreTypes= JavaRuntime.getVMInstallTypes();
-		for (int i= 0; i < jreTypes.length; i++) {
-			IVMInstallType jreType= jreTypes[i];
-			IVMInstall[] installs= jreType.getVMInstalls();
-			for (int k= 0; k < installs.length; k++) {
-				File res= getCommand(installs[k]);
+		for (IVMInstallType jreType : JavaRuntime.getVMInstallTypes()) {
+			for (IVMInstall i : jreType.getVMInstalls()) {
+				File res= getCommand(i);
 				if (res != null) {
 					return res;
 				}
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 e78442a..87a282d 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
@@ -105,9 +105,7 @@
 	private Object[] getPackageFragmentRoots(IJavaProject project) throws JavaModelException {
 		ArrayList<Object> result= new ArrayList<>();
 
-		IPackageFragmentRoot[] roots= project.getPackageFragmentRoots();
-		for (int i= 0; i < roots.length; i++) {
-			IPackageFragmentRoot root= roots[i];
+		for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
 			if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
 				if (root.getPath().equals(root.getJavaProject().getPath())) {
 					Object[] packageFragments= getPackageFragments(root);
@@ -123,10 +121,10 @@
 	private Object[] getPackageFragments(IPackageFragmentRoot root) throws JavaModelException {
 		ArrayList<IJavaElement> packageFragments= new ArrayList<>();
 
-		IJavaElement[] children= root.getChildren();
-		for (int i= 0; i < children.length; i++) {
-			if (((IPackageFragment) children[i]).containsJavaResources())
-				packageFragments.add(children[i]);
+		for (IJavaElement child : root.getChildren()) {
+			if (((IPackageFragment) child).containsJavaResources()) {
+				packageFragments.add(child);
+			}
 		}
 		return packageFragments.toArray();
 	}
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 9e45909..bc9e3b4 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
@@ -20,7 +20,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 
 import org.eclipse.swt.SWT;
@@ -272,8 +271,7 @@
 		if (hrefs.length > 0) {
 			HashSet<String> set= new HashSet<>();
 			set.addAll(Arrays.asList(hrefs));
-			for (int i = 0; i < referencesClasses.length; i++) {
-				JavadocLinkRef curr= referencesClasses[i];
+			for (JavadocLinkRef curr : referencesClasses) {
 				URL url= curr.getURL();
 				if (url != null && set.contains(url.toExternalForm())) {
 					checkedElements.add(curr);
@@ -292,8 +290,7 @@
 	 */
 	private JavadocLinkRef[] getReferencedElements(IJavaProject[] checkedProjects) {
 		HashSet<JavadocLinkRef> result= new HashSet<>();
-		for (int i= 0; i < checkedProjects.length; i++) {
-			IJavaProject project= checkedProjects[i];
+		for (IJavaProject project : checkedProjects) {
 			try {
 				collectReferencedElements(project, result);
 			} catch (CoreException e) {
@@ -305,15 +302,11 @@
 	}
 
 	private void collectReferencedElements(IJavaProject project, HashSet<JavadocLinkRef> result) throws CoreException {
-		IRuntimeClasspathEntry[] unresolved = JavaRuntime.computeUnresolvedRuntimeClasspath(project);
-		for (int i= 0; i < unresolved.length; i++) {
-			IRuntimeClasspathEntry curr= unresolved[i];
+		for (IRuntimeClasspathEntry curr : JavaRuntime.computeUnresolvedRuntimeClasspath(project)) {
 			if (curr.getType() == IRuntimeClasspathEntry.PROJECT) {
 				result.add(new JavadocLinkRef(JavaCore.create((IProject) curr.getResource())));
 			} else {
-				IRuntimeClasspathEntry[] entries= JavaRuntime.resolveRuntimeClasspathEntry(curr, project);
-				for (int k = 0; k < entries.length; k++) {
-					IRuntimeClasspathEntry entry= entries[k];
+				for (IRuntimeClasspathEntry entry : JavaRuntime.resolveRuntimeClasspathEntry(curr, project)) {
 					if (entry.getType() == IRuntimeClasspathEntry.PROJECT) {
 						result.add(new JavadocLinkRef(JavaCore.create((IProject) entry.getResource())));
 					} else if (entry.getType() == IRuntimeClasspathEntry.ARCHIVE) {
@@ -382,9 +375,7 @@
 		else
 			fStore.setTitle(""); //$NON-NLS-1$
 
-		Object[] buttons= fButtonsList.toArray();
-		for (int i= 0; i < buttons.length; i++) {
-			FlaggedButton button= (FlaggedButton) buttons[i];
+		for (FlaggedButton button : fButtonsList) {
 			if (button.getButton().getEnabled())
 				fStore.setBoolean(button.getFlag(), !(button.getButton().getSelection() ^ button.show()));
 			else
@@ -401,9 +392,7 @@
 
 	private String[] getHRefs() {
 		HashSet<String> res= new HashSet<>();
-		List<JavadocLinkRef> checked= fListDialogField.getCheckedElements();
-		for (Iterator<JavadocLinkRef> iterator= checked.iterator(); iterator.hasNext();) {
-			JavadocLinkRef element= iterator.next();
+		for (JavadocLinkRef element : fListDialogField.getCheckedElements()) {
 			URL url= element.getURL();
 			if (url != null) {
 				res.add(url.toExternalForm());
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocTreeWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocTreeWizardPage.java
index cbf707b..06f9dbb 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocTreeWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocTreeWizardPage.java
@@ -427,8 +427,7 @@
 	 * @param sourceElements an array with the source elements
 	 */
 	private void setTreeChecked(IJavaElement[] sourceElements) {
-		for (int i= 0; i < sourceElements.length; i++) {
-			IJavaElement curr= sourceElements[i];
+		for (IJavaElement curr : sourceElements) {
 			if (curr instanceof ICompilationUnit) {
 				fInputGroup.initialCheckListItem(curr);
 			} else if (curr instanceof IPackageFragment) {
@@ -446,13 +445,9 @@
 	private IPath[] getSourcePath(IJavaProject[] projects) {
 		HashSet<IPath> res= new HashSet<>();
 		//loops through all projects and gets a list if of their source paths
-		for (int k= 0; k < projects.length; k++) {
-			IJavaProject iJavaProject= projects[k];
-
+		for (IJavaProject javaProject : projects) {
 			try {
-				IPackageFragmentRoot[] roots= iJavaProject.getPackageFragmentRoots();
-				for (int i= 0; i < roots.length; i++) {
-					IPackageFragmentRoot curr= roots[i];
+				for (IPackageFragmentRoot curr : javaProject.getPackageFragmentRoots()) {
 					if (curr.getKind() == IPackageFragmentRoot.K_SOURCE) {
 						IResource resource= curr.getResource();
 						if (resource != null) {
@@ -476,11 +471,9 @@
 		HashSet<IPath> res= new HashSet<>();
 
 		IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
-		for (int j= 0; j < javaProjects.length; j++) {
-			IJavaProject curr= javaProjects[j];
+		for (IJavaProject curr : javaProjects) {
 			try {
 				IPath outputLocation= null;
-
 				// Not really clear yet what to do here for EFS. See bug
 				// https://bugs.eclipse.org/bugs/show_bug.cgi?id=113233.
 
@@ -491,10 +484,8 @@
 				IResource outputPathFolder= root.findMember(curr.getOutputLocation());
 				if (outputPathFolder != null)
 					outputLocation= outputPathFolder.getLocation();
-
-				String[] classPath= JavaRuntime.computeDefaultRuntimeClassPath(curr);
-				for (int i= 0; i < classPath.length; i++) {
-					IPath path= Path.fromOSString(classPath[i]);
+				for (String p : JavaRuntime.computeDefaultRuntimeClassPath(curr)) {
+					IPath path= Path.fromOSString(p);
 					if (!path.equals(outputLocation)) {
 						res.add(path);
 					}
@@ -519,21 +510,15 @@
 			Set<Object> allChecked= fInputGroup.getAllCheckedTreeItems();
 
 			Set<String> incompletePackages= new HashSet<>();
-			for (int h= 0; h < projects.length; h++) {
-				IJavaProject iJavaProject= projects[h];
-
-				IPackageFragmentRoot[] roots= iJavaProject.getPackageFragmentRoots();
-				for (int i= 0; i < roots.length; i++) {
-					IPackageFragmentRoot root= roots[i];
+			for (IJavaProject iJavaProject : projects) {
+				for (IPackageFragmentRoot root : iJavaProject.getPackageFragmentRoots()) {
 					if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
 						IPath rootLocation= root.getResource().getLocation();
-						IJavaElement[] packs= root.getChildren();
-						for (int k= 0; k < packs.length; k++) {
-							IJavaElement curr= packs[k];
+						for (IJavaElement curr : root.getChildren()) {
 							if (curr.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
 								// default packages are always incomplete
 								if (curr.getElementName().length() == 0 || !allChecked.contains(curr)
-										|| fInputGroup.isTreeItemGreyChecked(curr) || !isAccessibleLocation(curr.getResource().getLocation(), rootLocation)) {
+									|| fInputGroup.isTreeItemGreyChecked(curr) || !isAccessibleLocation(curr.getResource().getLocation(), rootLocation)) {
 									incompletePackages.add(curr.getElementName());
 								}
 							}
@@ -599,9 +584,7 @@
 
 		ArrayList<String> commands= new ArrayList<>();
 		commands.add(fJavadocCommandText.getText()); // must be first
-		String[] items= fJavadocCommandText.getItems();
-		for (int i= 0; i < items.length; i++) {
-			String curr= items[i];
+		for (String curr : fJavadocCommandText.getItems()) {
 			if (!commands.contains(curr)) {
 				commands.add(curr);
 			}
@@ -611,10 +594,9 @@
 
 	public IJavaProject[] getCheckedProjects() {
 		ArrayList<Object> res= new ArrayList<>();
-		TreeItem[] treeItems= fInputGroup.getTree().getItems();
-		for (int i= 0; i < treeItems.length; i++) {
-			if (treeItems[i].getChecked()) {
-				Object curr= treeItems[i].getData();
+		for (TreeItem treeItem : fInputGroup.getTree().getItems()) {
+			if (treeItem.getChecked()) {
+				Object curr= treeItem.getData();
 				if (curr instanceof IJavaProject) {
 					res.add(curr);
 				}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWizard.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWizard.java
index 553db94..9f0cf54 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWizard.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWizard.java
@@ -183,8 +183,7 @@
 				String newExternalForm= newURL.toExternalForm();
 				List<IJavaProject> projs= new ArrayList<>();
 				//get javadoc locations for all projects
-				for (int i= 0; i < checkedProjects.length; i++) {
-					IJavaProject curr= checkedProjects[i];
+				for (IJavaProject curr : checkedProjects) {
 					URL currURL= JavaUI.getProjectJavadocLocation(curr);
 					if (currURL == null || !newExternalForm.equals(currURL.toExternalForm())) {
 						//if not all projects have the same javadoc location ask if you want to change
@@ -208,15 +207,15 @@
 				if (javadocXMLElement != null) {
 
 					if (!fTreeWizardPage.getCustom()) {
-						for (int i= 0; i < fContributedJavadocWizardPages.length; i++) {
-							fContributedJavadocWizardPages[i].updateAntScript(javadocXMLElement);
+						for (ContributedJavadocWizardPage contributedJavadocWizardPage : fContributedJavadocWizardPages) {
+							contributedJavadocWizardPage.updateAntScript(javadocXMLElement);
 						}
 					}
 					File file= fStore.writeXML(javadocXMLElement);
 					IFile[] files= fRoot.findFilesForLocationURI(file.toURI());
 					if (files != null) {
-						for (int i= 0; i < files.length; i++) {
-							files[i].refreshLocal(IResource.DEPTH_ONE, null);
+						for (IFile f : files) {
+							f.refreshLocal(IResource.DEPTH_ONE, null);
 						}
 					}
 				}
@@ -293,8 +292,8 @@
 			}
 
 			if (!fTreeWizardPage.getCustom()) {
-				for (int i= 0; i < fContributedJavadocWizardPages.length; i++) {
-					fContributedJavadocWizardPages[i].updateArguments(vmArgs, progArgs);
+				for (ContributedJavadocWizardPage fContributedJavadocWizardPage : fContributedJavadocWizardPages) {
+					fContributedJavadocWizardPage.updateArguments(vmArgs, progArgs);
 				}
 			}
 
@@ -318,8 +317,8 @@
 			if (process != null) {
 				// construct a formatted command line for the process properties
 				StringBuilder buf= new StringBuilder();
-				for (int i= 0; i < args.length; i++) {
-					buf.append(args[i]);
+				for (String arg : args) {
+					buf.append(arg);
 					buf.append(' ');
 				}
 
@@ -410,8 +409,8 @@
 		super.addPage(fTreeWizardPage);
 		super.addPage(fStandardDocletWizardPage);
 
-		for (int i= 0; i < fContributedJavadocWizardPages.length; i++) {
-			super.addPage(fContributedJavadocWizardPages[i]);
+		for (ContributedJavadocWizardPage fContributedJavadocWizardPage : fContributedJavadocWizardPages) {
+			super.addPage(fContributedJavadocWizardPage);
 		}
 		super.addPage(fLastWizardPage);
 
@@ -441,8 +440,8 @@
 	private void refresh(IPath path) {
 		IContainer[] containers= fRoot.findContainersForLocationURI(path.toFile().toURI());
 		try {
-			for (int i= 0; i < containers.length; i++) {
-				containers[i].refreshLocal(IResource.DEPTH_INFINITE, null);
+			for (IContainer container : containers) {
+				container.refreshLocal(IResource.DEPTH_INFINITE, null);
 			}
 		} catch (CoreException e) {
 			JavaPlugin.log(e);
@@ -480,8 +479,8 @@
 		}
 
 		private boolean containsJavadocLaunch(ILaunch[] launches) {
-			for (int i= 0; i < launches.length; i++) {
-				if (launches[i] == fLaunch) {
+			for (ILaunch launch : launches) {
+				if (launch == fLaunch) {
 					return true;
 				}
 			}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWizardPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWizardPage.java
index c85b9ca..77ff357 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWizardPage.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWizardPage.java
@@ -139,11 +139,11 @@
 
 		@Override
 		public void widgetSelected(SelectionEvent e) {
-			for (int i= 0; i < fEnable.length; i++) {
-				fEnable[i].setEnabled(true);
+			for (Control en : fEnable) {
+				en.setEnabled(true);
 			}
-			for (int i= 0; i < fDisable.length; i++) {
-				fDisable[i].setEnabled(false);
+			for (Control di : fDisable) {
+				di.setEnabled(false);
 			}
 			validate();
 		}
@@ -163,8 +163,7 @@
 		@Override
 		public void widgetSelected(SelectionEvent e) {
 
-			for (int i= 0; i < controls.length; i++) {
-				Control control= controls[i];
+			for (Control control : controls) {
 				control.setEnabled(!control.getEnabled());
 			}
 			validate();
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWriter.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWriter.java
index fee6fb9..8ab1fb5 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWriter.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/JavadocWriter.java
@@ -169,17 +169,15 @@
 			xmlJavadocDesc.setAttribute(store.EXTRAOPTIONS, str);
 		}
 
-		String[] hrefs= store.getHRefs();
-		for (int i= 0; i < hrefs.length; i++) {
+		for (String href : store.getHRefs()) {
 			Element links= document.createElement("link"); //$NON-NLS-1$
 			xmlJavadocDesc.appendChild(links);
-			links.setAttribute(store.HREF, hrefs[i]);
+			links.setAttribute(store.HREF, href);
 		}
 	}
 
 	private void sortSourceElement(IJavaElement[] iJavaElements, List<String> sourcefiles, List<String> packages) {
-		for (int i= 0; i < iJavaElements.length; i++) {
-			IJavaElement element= iJavaElements[i];
+		for (IJavaElement element : iJavaElements) {
 			IPath p= element.getResource().getLocation();
 			if (p == null)
 				continue;
@@ -196,11 +194,11 @@
 	private String getPathString(IPath[] paths) {
 		StringBuilder buf= new StringBuilder();
 
-		for (int i= 0; i < paths.length; i++) {
+		for (IPath path : paths) {
 			if (buf.length() != 0) {
 				buf.append(File.pathSeparatorChar);
 			}
-			buf.append(getPathString(paths[i]));
+			buf.append(getPathString(path));
 		}
 
 		if (buf.length() == 0) {
@@ -226,8 +224,8 @@
 		if (fBasePath.segmentCount() == matchingSegments) {
 			return getRelativePath(fullPath, matchingSegments);
 		}
-		for (int i= 0; i < fJavaProjects.length; i++) {
-			IProject proj= fJavaProjects[i].getProject();
+		for (IJavaProject javaProject : fJavaProjects) {
+			IProject proj= javaProject.getProject();
 			IPath projLoc= proj.getLocation();
 			if (projLoc != null && projLoc.segmentCount() <= matchingSegments && projLoc.isPrefixOf(fullPath)) {
 				return getRelativePath(fullPath, matchingSegments);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/RecentSettingsStore.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/RecentSettingsStore.java
index 1c8adf7..2b3adf1 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/RecentSettingsStore.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javadocexport/RecentSettingsStore.java
@@ -71,9 +71,7 @@
 
 		IDialogSettings projectsSection= settings.getSection(SECTION_PROJECTS);
 		if (projectsSection != null) {
-			IDialogSettings[] sections= projectsSection.getSections();
-			for (int i= 0; i < sections.length; i++) {
-				IDialogSettings curr= sections[i];
+			for (IDialogSettings curr : projectsSection.getSections()) {
 				String projectName= curr.getName();
 				IProject project= root.getProject(projectName);
 				//make sure project has not been removed
@@ -103,9 +101,7 @@
 		}
 		//finds projects in the workspace that have been added since the
 		//last time the wizard was run
-		IProject[] projects= root.getProjects();
-		for (int i= 0; i < projects.length; i++) {
-			IProject project= projects[i];
+		for (IProject project : root.getProjects()) {
 			if (project.isAccessible()) {
 				IJavaProject curr= JavaCore.create(project);
 				if (!fPerProjectSettings.containsKey(curr)) {