📜  Java中的对类

📅  最后修改于: 2022-05-13 01:54:49.917000             🧑  作者: Mango

Java中的对类

在 C++ 中,我们在实用程序库中有 std::pair,如果我们想将一对值保持在一起,这将非常有用。我们在Java中寻找对等的类,但 Pair 类直到Java 7 才出现。JavaFX 2.2 有 javafx.util.Pair 类,可用于存储对。我们需要使用 javafx.util.Pair 类提供的参数化构造函数将值存储到 Pair 中。注意:注意 HashMap/TreeMap 中使用的 对。这里, 只是指存储在一起的一对值。

javafx.util.Pair 类提供的方法

  • Pair (K key, V value) :创建一个新的pair
  • boolean equals() :用于比较两个对对象。它进行深度比较,即,它比较存储在对对象中的值()的基础。例子:
    Pair p1 = new Pair(3,4);
    Pair p2 = new Pair(3,4);
    Pair p3 = new Pair(4,4);
    System.out.println(p1.equals(p2) + “ ” + p2.equals(p3));
    

    输出:
    真假

  • String toString() :此方法将返回 Pair 的字符串表示形式。
  • K getKey() :它返回该对的密钥。
  • V getValue() :它返回该对的值。
  • int hashCode() :为 Pair 生成哈希码。

    让我们看看下面的问题。
    问题陈述:我们有 n 个学生的名字,他们在测验中获得了相应的分数。我们需要找到班级中得分最高的学生。

    注意:您需要在您的机器上安装Java 8 才能运行以下程序。

    /* Java program to find a Pair which has maximum score*/
    import javafx.util.Pair;
    import java.util.ArrayList;
      
    class Test
    {
        /* This method returns a Pair which hasmaximum score*/
        public static Pair 
                  getMaximum(ArrayList < Pair  > l)
        {
            // Assign minimum value initially
            int max = Integer.MIN_VALUE;
      
            // Pair to store the maximum marks of a 
            // student with its name
            Pair  ans = 
                             new Pair  ("", 0);
      
            // Using for each loop to iterate array of 
            // Pair Objects
            for (Pair  temp : l)
            {
                // Get the score of Student
                int val = temp.getValue();
      
                // Check if it is greater than the previous 
                // maximum marks
                if (val > max)
                {
                    max = val;  // update maximum
                    ans = temp; // update the Pair
                }
            }
            return ans;
        }
      
        // Driver method to test above method
        public static void main (String[] args)
        {
             int n = 5;//Number of Students
      
            //Create an Array List
            ArrayList  > l =
                      new ArrayList  > ();
      
            /*  Create pair of name of student  with their
                corresponding score and insert into the
                Arraylist */
            l.add(new Pair  ("Student A", 90));
            l.add(new Pair  ("Student B", 54));
            l.add(new Pair  ("Student C", 99));
            l.add(new Pair  ("Student D", 88));
            l.add(new Pair  ("Student E", 89));
      
            // get the Pair which has maximum value
            Pair  ans = getMaximum(l);
      
            System.out.println(ans.getKey() + " is top scorer " +
                              "with score of " + ans.getValue());
        }
    }
    

    输出

    Student C is top scorer with score of 99

    注意:上述程序可能无法在在线 IDE 中运行,请使用离线编译器。


    参考资料:https://docs.oracle.com/javafx/2/api/javafx/util/Pair.html