gpt4 book ai didi

java - 一种可以同时使用原始数据类型和泛型的方法?

转载 作者:行者123 更新时间:2023-12-02 04:50:31 25 4
gpt4 key购买 nike

我最近了解了泛型并重写了我的旧二进制排序程序,该程序用于仅对 int 类型的值进行排序
我的新实现将对除原始数据类型之外的所有内容进行排序。下面是实现:

import java.util.Random;

class SortAllTypes
{
static <All extends Comparable<All>> void sort(All array[])
{
for(int i = array.length - 1; i >= 0; i--)
for(int j = 0; j < i; j++)
if(array[j].compareTo(array[j+1]) > 0)
{
All temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}

static <All> void display(All array[])
{
for(All value : array)
System.out.print(value + " ");
System.out.println();
}
public static void main(String X[])
{
Random generator = new Random();
Integer x[] = new Integer[10];
String directory[] = {"def", "ghi", "abc"};
for(int i = 0 ; i < x.length; i++)
x[i] = generator.nextInt(100);
sort(directory);
display(directory);

sort(x);
display(x);
}
}

我知道泛型不适用于原始数据类型,并且我找不到编写可对任何类型的值进行排序的单个函数的解决方案。有什么办法可以做到这一点吗?

最佳答案

可以定义一个采用 Object 的方法。然后instanceof检查以确定提供了哪种类型的数组并操作特定类型的数组。我很确定这不是您要找的。

看看 Arrays实用类。请注意,每个操作(binarySearch、copyOf、sort 等)对于 Object[] 都是重载的。以及每个原始类型。

关于java - 一种可以同时使用原始数据类型和泛型的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29281423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com