对任何类型的对象进行排序,java
我正在尝试更改下面代码中的排序方法,以对任何类型的对象进行排序,而不仅仅是字符串,但有点难懂,欢迎所有建议对任何类型的对象进行排序,java,java,arrays,sorting,Java,Arrays,Sorting,我正在尝试更改下面代码中的排序方法,以对任何类型的对象进行排序,而不仅仅是字符串,但有点难懂,欢迎所有建议 class SortNames { static void sort(String[] s) { for (int i = 0; i<s.length; i++) { for (int j = i+1; j < s.length; j++) { if (s[i].compareTo(s[j])>0) {
class SortNames {
static void sort(String[] s) {
for (int i = 0; i<s.length; i++) {
for (int j = i+1; j < s.length; j++) {
if (s[i].compareTo(s[j])>0) {
String t;
t = s[i]; s[i] = s[j]; s[j] = t;
}
}
}
}
public static void main(String[] args) {
String[] names = {"Pete","Jill","May","Anne","Tim"};
sort(names);
for (int i=0; i<names.length; i++)
System.out.println(names[i]);
}
}
class-SortNames{
静态无效排序(字符串[]s){
对于(int i=0;i0){
字符串t;
t=s[i];s[i]=s[j];s[j]=t;
}
}
}
}
公共静态void main(字符串[]args){
String[]name={“Pete”、“Jill”、“May”、“Anne”、“Tim”};
排序(名称);
对于(int i=0;i将SortNames
转换为SortNames将SortNames
转换为SortNames您只需实现与对象的可比接口,您需要对该对象进行排序,并对上述代码进行一些更改,以使该代码可用于任何其他对象
class SortNames {
static void sort(Comparable[] s) {
for (int i = 0; i<s.length; i++) {
for (int j = i+1; j < s.length; j++) {
if (s[i].compareTo(s[j])>0) {
Comparable t;
t = s[i]; s[i] = s[j]; s[j] = t;
}
}
}
}
public static void main(String[] args) {
String[] names = {"Pete","Jill","May","Anne","Tim"};
sort(names);
for (int i=0; i<names.length; i++)
System.out.println(names[i]);
}
}
class-SortNames{
静态无效排序(可比[]s){
对于(int i=0;i0){
可比t;
t=s[i];s[i]=s[j];s[j]=t;
}
}
}
}
公共静态void main(字符串[]args){
String[]name={“Pete”、“Jill”、“May”、“Anne”、“Tim”};
排序(名称);
对于(inti=0;i您只需要实现对象的可比较接口,您需要对该对象进行排序,并对上述代码进行一些更改,以使该代码可用于任何其他对象
class SortNames {
static void sort(Comparable[] s) {
for (int i = 0; i<s.length; i++) {
for (int j = i+1; j < s.length; j++) {
if (s[i].compareTo(s[j])>0) {
Comparable t;
t = s[i]; s[i] = s[j]; s[j] = t;
}
}
}
}
public static void main(String[] args) {
String[] names = {"Pete","Jill","May","Anne","Tim"};
sort(names);
for (int i=0; i<names.length; i++)
System.out.println(names[i]);
}
}
class-SortNames{
静态无效排序(可比[]s){
对于(int i=0;i0){
可比t;
t=s[i];s[i]=s[j];s[j]=t;
}
}
}
}
公共静态void main(字符串[]args){
String[]name={“Pete”、“Jill”、“May”、“Anne”、“Tim”};
排序(名称);
对于(inti=0;i您正在接受String[]对方法进行排序,那么它将永远不会是泛型的
static void sort(String[] s)
您认为集合的排序方法有什么优势吗
public static <T extends Comparable<? super T>> void sort(List<T> list) {
Object[] a = list.toArray();
Arrays.sort(a);
ListIterator<T> i = list.listIterator();
for (int j=0; j<a.length; j++) {
i.next();
i.set((T)a[j]);
}
}
publicstatic您接受String[]对方法进行排序,然后它将永远不会是泛型的
static void sort(String[] s)
您认为集合的排序方法有什么优势吗
public static <T extends Comparable<? super T>> void sort(List<T> list) {
Object[] a = list.toArray();
Arrays.sort(a);
ListIterator<T> i = list.listIterator();
for (int j=0; j<a.length; j++) {
i.next();
i.set((T)a[j]);
}
}
publicstatic如果要对数组进行排序,可以使用arrays.sort(yourray);
如果你真的想用你的algo重新实现它(假设它能工作),你只需要改变几件事:
static <T extends Comparable<? super T>> void sort(T[] s) {
for (int i = 0; i < s.length; i++) {
for (int j = i + 1; j < s.length; j++) {
if (s[i].compareTo(s[j]) > 0) {
T t;
t = s[i];
s[i] = s[j];
s[j] = t;
}
}
}
}
static如果要对数组进行排序,可以使用arrays.sort(yourray);
如果你真的想用你的algo重新实现它(假设它能工作),你只需要改变几件事:
static <T extends Comparable<? super T>> void sort(T[] s) {
for (int i = 0; i < s.length; i++) {
for (int j = i + 1; j < s.length; j++) {
if (s[i].compareTo(s[j]) > 0) {
T t;
t = s[i];
s[i] = s[j];
s[j] = t;
}
}
}
}
staticclass城市{
公共静态void main(字符串参数[])
{
int i,j;
字符串温度;
字符串s[]=新字符串[6];
对于(i=0;i类城市{
公共静态void main(字符串参数[])
{
int i,j;
字符串温度;
字符串s[]=新字符串[6];
对于(i=0;i1.您至少应该将作用域缩小到可比较的对象。2.您尝试过哪些不起作用的方法?没有太多可更改的地方。我不清楚。您说的是任何类型,但您只传递并执行字符串操作。此外,除非这是某种练习,否则我将使用集合。排序
。仅字符串排序?make一些清晰的…@davary字符串到ASCII转换1.您至少应该将范围缩小到可比较的对象。2.您尝试了哪些不起作用的内容?没有太多的更改。我不清楚。您说的是任何类型,但您只传递和执行字符串操作。此外,除非这是某种练习,否则我将使用列selections.sort
。仅字符串排序?请澄清…@davary字符串到ASCII的转换问题。应该有可比较的[]替换对象[]。更正。抱歉。应该有可比较的[]替换对象[].corrected.String t;存在问题。将其更改为Comparable t。您应该知道问题所在。我没有仔细查看您的代码。我只是执行了排序过程。将String t更改为Comparable.sorry。应该有Comparable[]代替object[]。corrected.sorry。应该有Comparable[]代替object[].corrected.String t;存在问题。将其更改为Comparable t。您应该知道问题所在。我没有仔细查看您的代码。我只是执行排序过程。将String t更改为Comparable。