refactored / initial sizes
diff --git a/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java b/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java
index f38d542..ef9e27f 100755
--- a/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/application/NavigationHandlerImpl.java
@@ -1439,8 +1439,7 @@
 
             Map<String, Set<NavigationCase>> cases = new HashMap<>(HashMapUtils.calcCapacity(rulesSize));
 
-            List<_WildcardPattern> wildcardPatterns = new ArrayList<_WildcardPattern>();
-
+            List<_WildcardPattern> wildcardPatterns = new ArrayList<>();
             for (NavigationRule rule : rules)
             {
                 String fromViewId = rule.getFromViewId();
@@ -1458,7 +1457,7 @@
                 Set<NavigationCase> set = cases.get(fromViewId);
                 if (set == null)
                 {
-                    set = new HashSet<NavigationCase>(convertNavigationCasesToAPI(rule));
+                    set = new HashSet<>(convertNavigationCasesToAPI(rule));
                     cases.put(fromViewId, set);
                     if (fromViewId.endsWith(ASTERISK))
                     {
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/AbsoluteOrderingImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/AbsoluteOrderingImpl.java
index 1acea3e..7f67b9a 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/AbsoluteOrderingImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/AbsoluteOrderingImpl.java
@@ -31,7 +31,7 @@
     {
         if (orderList == null)
         {
-            orderList = new ArrayList<>();
+            orderList = new ArrayList<>(3);
         }
         orderList.add(slot);
     }
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/AttributeImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/AttributeImpl.java
index bf8dda1..e4716c4 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/AttributeImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/AttributeImpl.java
@@ -43,7 +43,7 @@
     {
         if (description == null)
         {
-            description = new ArrayList<>();
+            description = new ArrayList<>(1);
         }
         description.add(value);
     }
@@ -62,7 +62,7 @@
     {
         if (displayName == null)
         {
-            displayName = new ArrayList<>();
+            displayName = new ArrayList<>(1);
         }
         displayName.add(value);
     }
@@ -81,7 +81,7 @@
     {
         if (icon == null)
         {
-            icon = new ArrayList<>();
+            icon = new ArrayList<>(1);
         }
         icon.add(value);
     }
@@ -144,7 +144,7 @@
     {
         if (attributeExtension == null)
         {
-            attributeExtensions = new ArrayList<>();
+            attributeExtensions = new ArrayList<>(1);
         }
         attributeExtensions.add(attributeExtension);
     }
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/ContractMappingImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/ContractMappingImpl.java
index 9783047..678440d 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/ContractMappingImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/ContractMappingImpl.java
@@ -69,7 +69,7 @@
     {
         if (contractsList == null)
         {
-            contractsList = new ArrayList<>();
+            contractsList = new ArrayList<>(5);
         }
         contractsList.add(contract);
     }
@@ -78,7 +78,7 @@
     {
         if (urlPatternList == null)
         {
-            urlPatternList = new ArrayList<>();
+            urlPatternList = new ArrayList<>(5);
         }
         urlPatternList.add(urlPattern);
     }
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesConfigExtensionImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesConfigExtensionImpl.java
index 74554fb..c6d751c 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesConfigExtensionImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesConfigExtensionImpl.java
@@ -55,7 +55,7 @@
     {
         if (_faceletsProcessingList == null)
         {
-            _faceletsProcessingList = new ArrayList<>();
+            _faceletsProcessingList = new ArrayList<>(5);
         }
         _faceletsProcessingList.add(elem);
     }
@@ -79,7 +79,7 @@
     {
         if (viewPoolMappings == null)
         {
-            viewPoolMappings = new ArrayList<>();
+            viewPoolMappings = new ArrayList<>(5);
         }
         viewPoolMappings.add(mapping);
     }
@@ -103,7 +103,7 @@
     {
         if (faceletsTemplateMappings == null)
         {
-            faceletsTemplateMappings = new ArrayList<>();
+            faceletsTemplateMappings = new ArrayList<>(5);
         }
         faceletsTemplateMappings.add(mapping);
     }
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesConfigImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesConfigImpl.java
index 1e7ea32..fee6dfb 100755
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesConfigImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesConfigImpl.java
@@ -182,7 +182,7 @@
         validators.put(id, validatorClass);
     }
     
-    public void addBehavior (Behavior behavior)
+    public void addBehavior(Behavior behavior)
     {
         if (behaviors == null)
         {
@@ -191,7 +191,7 @@
         behaviors.add (behavior);
     }
     
-    public void addNamedEvent (NamedEvent namedEvent)
+    public void addNamedEvent(NamedEvent namedEvent)
     {
         if (namedEvents == null)
         {
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowCallImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowCallImpl.java
index 98bbe9c..6fa5e03 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowCallImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowCallImpl.java
@@ -19,6 +19,7 @@
 package org.apache.myfaces.config.impl.element;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import org.apache.myfaces.config.element.FacesFlowCall;
 import org.apache.myfaces.config.element.FacesFlowParameter;
@@ -34,19 +35,22 @@
     private List<FacesFlowParameter> outboundParameterList;
     private String id;
 
-    public FacesFlowCallImpl()
-    {
-        outboundParameterList = new ArrayList<>();
-    }
-
     @Override
     public List<FacesFlowParameter> getOutboundParameterList()
     {
+        if (outboundParameterList == null)
+        {
+            return Collections.emptyList();
+        }
         return outboundParameterList;
     }
     
     public void addOutboundParameter(FacesFlowParameter parameter)
     {
+        if (outboundParameterList == null)
+        {
+            outboundParameterList = new ArrayList<>(3);
+        }
         outboundParameterList.add(parameter);
     }
 
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowDefinitionImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowDefinitionImpl.java
index 151da07..b1d4124 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowDefinitionImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowDefinitionImpl.java
@@ -69,7 +69,7 @@
     {
         if (viewList == null)
         {
-            viewList = new ArrayList<>();
+            viewList = new ArrayList<>(3);
         }
         viewList.add(view);
     }
@@ -88,7 +88,7 @@
     {
         if (switchList == null)
         {
-            switchList = new ArrayList<>();
+            switchList = new ArrayList<>(3);
         }
         switchList.add(switchItem);
     }
@@ -107,7 +107,7 @@
     {
         if (returnList == null)
         {
-            returnList = new ArrayList<>();
+            returnList = new ArrayList<>(3);
         }
         returnList.add(value);
     }
@@ -126,7 +126,7 @@
     {
         if (navigationRuleList == null)
         {
-            navigationRuleList = new ArrayList<>();
+            navigationRuleList = new ArrayList<>(3);
         }
         navigationRuleList.add(value);
     }
@@ -145,7 +145,7 @@
     {
         if (flowCallList == null)
         {
-            flowCallList = new ArrayList<>();
+            flowCallList = new ArrayList<>(3);
         }
         flowCallList.add(value);
     }
@@ -164,7 +164,7 @@
     {
         if (methodCallList == null)
         {
-            methodCallList = new ArrayList<>();
+            methodCallList = new ArrayList<>(3);
         }
         methodCallList.add(value);
     }
@@ -195,7 +195,7 @@
     {
         if (inboundParameterList == null)
         {
-            inboundParameterList = new ArrayList<>();
+            inboundParameterList = new ArrayList<>(3);
         }
         inboundParameterList.add(value);
     }
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowMethodCallImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowMethodCallImpl.java
index 1e7a0d6..aba7070 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowMethodCallImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowMethodCallImpl.java
@@ -81,7 +81,7 @@
     {
         if (parameterList == null)
         {
-            parameterList = new ArrayList<>();
+            parameterList = new ArrayList<>(3);
         }
         parameterList.add(parameter);
     }
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowSwitchImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowSwitchImpl.java
index 3106057..953e8c6 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowSwitchImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/FacesFlowSwitchImpl.java
@@ -47,7 +47,7 @@
     {
         if (navigationCaseList == null)
         {
-            navigationCaseList = new ArrayList<>();
+            navigationCaseList = new ArrayList<>(5);
         }
         navigationCaseList.add(navcase);
     }
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/OrderingImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/OrderingImpl.java
index 48943a6..e245633 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/OrderingImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/OrderingImpl.java
@@ -32,7 +32,7 @@
     {
         if (beforeList == null)
         {
-            beforeList = new ArrayList<>();
+            beforeList = new ArrayList<>(3);
         }
         beforeList.add(slot);
     }
@@ -51,7 +51,7 @@
     {
         if (afterList == null)
         {
-            afterList = new ArrayList<>();
+            afterList = new ArrayList<>(3);
         }
         afterList.add(slot);
     }
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/PropertyImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/PropertyImpl.java
index 600f473..305e1e1 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/PropertyImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/PropertyImpl.java
@@ -52,7 +52,7 @@
     {
         if (description == null)
         {
-            description = new ArrayList<>();
+            description = new ArrayList<>(1);
         }
         description.add(value);
     }
@@ -72,7 +72,7 @@
     {
         if (displayName == null)
         {
-            displayName = new ArrayList<String>();
+            displayName = new ArrayList<>(1);
         }
 
         displayName.add(value);
@@ -93,7 +93,7 @@
     {
         if (icon == null)
         {
-            icon = new ArrayList<>();
+            icon = new ArrayList<>(1);
         }
 
         icon.add(value);
@@ -157,7 +157,7 @@
     {
         if (propertyExtensions == null)
         {
-            propertyExtensions = new ArrayList<>();
+            propertyExtensions = new ArrayList<>(1);
         }
         propertyExtensions.add(propertyExtension);
     }
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/RedirectImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/RedirectImpl.java
index a33e1c7..189a691 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/RedirectImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/RedirectImpl.java
@@ -35,9 +35,9 @@
     {
         if (viewParams == null)
         {
-            viewParams = new HashMap<>();
+            viewParams = new HashMap<>(3, 1f);
         }
-        List<String> params = viewParams.computeIfAbsent(viewParam.getName(), k -> new ArrayList<>());
+        List<String> params = viewParams.computeIfAbsent(viewParam.getName(), k -> new ArrayList<>(3));
         params.add(viewParam.getValue());
     }
     
diff --git a/impl/src/main/java/org/apache/myfaces/config/impl/element/ViewPoolMappingImpl.java b/impl/src/main/java/org/apache/myfaces/config/impl/element/ViewPoolMappingImpl.java
index 77fa1c3..a5ec673 100644
--- a/impl/src/main/java/org/apache/myfaces/config/impl/element/ViewPoolMappingImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/config/impl/element/ViewPoolMappingImpl.java
@@ -55,7 +55,7 @@
     {
         if (parameterList == null)
         {
-            parameterList = new ArrayList<>();
+            parameterList = new ArrayList<>(3);
         }
         parameterList.add(parameter);
     }
diff --git a/impl/src/main/java/org/apache/myfaces/flow/builder/NavigationCaseBuilderImpl.java b/impl/src/main/java/org/apache/myfaces/flow/builder/NavigationCaseBuilderImpl.java
index 864e15e..64f0951 100644
--- a/impl/src/main/java/org/apache/myfaces/flow/builder/NavigationCaseBuilderImpl.java
+++ b/impl/src/main/java/org/apache/myfaces/flow/builder/NavigationCaseBuilderImpl.java
@@ -120,7 +120,7 @@
             Map<String, List<String>> map = _navigationCaseImpl.getParameters();

             if (map == null)

             {

-                map = new HashMap<>();

+                map = new HashMap<>(3, 1f);

                 _navigationCaseImpl.setParameters(map);

             }