如何在java中对不同的数据类型进行排序并将它们打印在一个表中? (使用方法重载)

Posted

技术标签:

【中文标题】如何在java中对不同的数据类型进行排序并将它们打印在一个表中? (使用方法重载)【英文标题】:How to sort different data types in java and print them in a table ? (using method overloading) 【发布时间】:2021-09-18 20:18:40 【问题描述】:

目标是使用 java 方法重载输入“任何数据类型”。取值后,另一种方法将根据数据在不同数组中的数据类型对数据进行排序。将所有数据输入并存储在数组中后,必须将其打印到表格中。

例如:

data(23) - 这会将整数值存储到数组中

data(34.453) - 这会将双精度值存储到数组中

data("hello world") - 这会将字符串值存储到数组中

考虑到 java 中的数组大小是预定义的,表不应该打印 null 或 0 值。打印时应排除所有 null/0 值。

【问题讨论】:

【参考方案1】:

解决这个问题:

我们可以使用方法重载来捕获所有数据 每个方法将使用不同的数据类型,但具有相同的名称 - data() 应该找出每个数组的空值个数。 变量 n 将确定所有 3 个整数中最大的大小。 n 将是打印表格时的测试表达式限制
public class overLoadEg 
//array that will store integers
    static int[] intArray = new int[10];
//array that will store doubles
    static double[] doubleArray = new double[10];
//array that will store strings
    static String[] stringArray = new String[10];
    static int i = 0, j = 0, k = 0, m, n;

    public static void main(String[] args) 
//input values
        data(23);
        data(23.4554);
        data("Hello");
        data("world");
        data("help");
        data(2355);
        data(52.56);
        data("val");
        data("kkj");
        data(34);
        data(3);
        data(2);
        data(4);
        data(5);
        data(6);
        data(7);
        data(8);
        display();
    


    public static void data(int val)
        //add int value to int array
        intArray[i] = val;
        System.out.println("Int " + intArray[i] + " added to IntArray");
        i++;
    
    public static void data(Double val)
        //add double value to double array
        doubleArray[j] = val;
        System.out.println("Double " + doubleArray[j] + " added to doubleArray");
        j++;
    
    public static void data(String val)
        //add string value to stringarray
        stringArray[k] = val;
        System.out.println("String " + stringArray[k] + " added to stringArray");
        k++;
    

    public static void max()
        //To get the maximum number of values in each array
        int x, y, z;
        x = y = z = 0;

        //counting all the null values in each array and storing in x, y and z
        for(m=0;m<10;m++)
            if(intArray[m] == 0)
                ++x; 
            
            if(doubleArray[m] == 0)
                ++y;
            
            if(stringArray[m] == null)
                ++z;
            
        

        //subtracting the null/0 count from the array size
        //this gives the active number of values in each array
        x = 10 - x;
        y = 10 - y;
        z = 10 - z;


        //comparing all 3 arrays and check which has the max number of values
        //the max numbe is stored in n
        if(x > y)
            if(x > z)
                n = x;
            
            else
                n = z;
            
        
        else
            if(y > z)
                n = y;
            
            else
                n = z;
            
        
        
    

    public static void display()
        //printing the arrays in table
        //All the null/0 values are excluded

        System.out.println("\n\nInt\tDouble\t\tString");
        max();
        for(m = 0; m < n; m++)
            System.out.println(intArray[m] + "\t" + doubleArray[m] + "\t\t" + stringArray[m]);
        
        System.out.println("Count : " + m);
    

    


【讨论】:

以上是关于如何在java中对不同的数据类型进行排序并将它们打印在一个表中? (使用方法重载)的主要内容,如果未能解决你的问题,请参考以下文章

如何从多个模型中对数据进行排序/排序?

如何在 java 中对 ResultSet 进行排序?

如何在java中对字符串进行排序时忽略空格?

JQuery UI Sortable - 如何在一个容器中对两种类型的项目进行排序

如何在mysql中对具有不同数据集的列进行排序

在 MySQL 中对 varchar 字段进行数字排序