address code review feedback:
- fix copyright in unit test
- add hashCode method for Form class
- swap asMap to parameters in Form equality check
- fix Boolean warning in Form unit test
diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/core/Form.java b/jaxrs-api/src/main/java/jakarta/ws/rs/core/Form.java
index 0ba06d5..908b849 100644
--- a/jaxrs-api/src/main/java/jakarta/ws/rs/core/Form.java
+++ b/jaxrs-api/src/main/java/jakarta/ws/rs/core/Form.java
@@ -106,6 +106,16 @@
         if (object == this) return true;
         if (getClass() != object.getClass()) return false;
         Form form = (Form) object;
-        return parameters.equals(form.asMap());
+        return parameters.equals(form.parameters);
+    }
+
+    /**
+     * Returns the hashCode of the underlying form parameters.
+     * 
+     * @return a hash code value for the underlying form parameters.
+     */
+    @Override
+    public int hashCode() {
+        return parameters.hashCode();
     }
 }
diff --git a/jaxrs-api/src/test/java/jakarta/ws/rs/core/FormTest.java b/jaxrs-api/src/test/java/jakarta/ws/rs/core/FormTest.java
index 9d4a855..8928eeb 100644
--- a/jaxrs-api/src/test/java/jakarta/ws/rs/core/FormTest.java
+++ b/jaxrs-api/src/test/java/jakarta/ws/rs/core/FormTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2024 David Walters. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -22,6 +22,18 @@
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class FormTest {
+
+    private static final String AGE_FIELD = "age";
+    
+    private static final String AGE_VALUE = "25";
+
+    private static final String LOCATION_FIELD = "location";
+
+    private static final String LOCATION_VALUE = "USA";
+
+    private static final String NAME_FIELD = "name";
+
+    private static final String NAME_VALUE = "john";
     
     @Test
     public void testNullEquals() {
@@ -38,16 +50,12 @@
     @Test
     public void testDifferentObjectTypeEquals() {
         Form form = new Form("field", "value");
-        Boolean booleanValue = new Boolean(false);
+        Boolean booleanValue = Boolean.TRUE;
         assertFalse(form.equals(booleanValue));
     }
 
     @Test
     public void testFormContentEquals() {
-        final String NAME_FIELD = "name";
-        final String AGE_FIELD = "age";
-        final String NAME_VALUE = "john";
-        final String AGE_VALUE = "25";
         Form form1 = new Form(NAME_FIELD,NAME_VALUE).param(AGE_FIELD, AGE_VALUE);
         Form form2 = new Form(NAME_FIELD,NAME_VALUE).param(AGE_FIELD, AGE_VALUE);
         assertTrue(form1.equals(form2));
@@ -55,7 +63,16 @@
         assertTrue(form1.equals(form2));
         form2 = new Form(AGE_VALUE, AGE_FIELD).param(NAME_VALUE, NAME_FIELD);
         assertFalse(form1.equals(form2));
-        form2 = new Form(AGE_FIELD, AGE_VALUE).param(NAME_FIELD,NAME_VALUE).param("location", "USA");
+        form2 = new Form(AGE_FIELD, AGE_VALUE).param(NAME_FIELD,NAME_VALUE).param(LOCATION_FIELD, LOCATION_VALUE);
         assertFalse(form1.equals(form2));
     }
+
+    @Test
+    public void testHashCode() {
+        Form form1 = new Form(NAME_FIELD,NAME_VALUE).param(AGE_FIELD, AGE_VALUE);
+        Form form2 = new Form(NAME_FIELD,NAME_VALUE).param(AGE_FIELD, AGE_VALUE);
+        assertTrue(form1.hashCode() == form2.hashCode());
+        form2.param(LOCATION_FIELD, LOCATION_VALUE);
+        assertFalse(form1.hashCode() == form2.hashCode());
+    }
 }