Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:对ArrayList进行排序<;MyObject>;基于MyObject变量_Java_Sorting_Arraylist - Fatal编程技术网

Java:对ArrayList进行排序<;MyObject>;基于MyObject变量

Java:对ArrayList进行排序<;MyObject>;基于MyObject变量,java,sorting,arraylist,Java,Sorting,Arraylist,可能重复: 给你一个简短的问题: 我有一个ArrayList中填充了MyObject对象。我希望根据整数变量MyObject对它们进行排序 是否有现成的方法来实现这一点,或者我必须自己编写快速排序/合并排序 谢谢你抽出时间, Dimitris如果您想查看比较器,它们可以让您以任何方式定义排序顺序。这是您想查看比较器的文档,它们允许您以任何方式定义排序顺序。这是您可以使用数组的文档。sort(…)您必须只为MyObject实现一个比较器,或者使其具有可比性您可以使用数组。sort(…)您必须仅

可能重复:

给你一个简短的问题:

我有一个
ArrayList
中填充了
MyObject
对象。我希望根据整数变量
MyObject
对它们进行排序

是否有现成的方法来实现这一点,或者我必须自己编写快速排序/合并排序

谢谢你抽出时间,
Dimitris

如果您想查看比较器,它们可以让您以任何方式定义排序顺序。这是您想查看比较器的文档,它们允许您以任何方式定义排序顺序。这是您可以使用
数组的文档。sort(…)
您必须只为
MyObject
实现一个
比较器
,或者使其具有可比性

您可以使用
数组。sort(…)
您必须仅为您的
MyObject
实现一个
比较器
,或使其具有可比性

,您需要实现可比接口并覆盖比较器。 在下面的示例中,我假设有一个成员变量“name”,您将在该变量上比较对象

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class MyObject implements Comparable<MyObject>{
private String name;
private int id;

public String getName() {
    return name;
}

public MyObject(String name, int id) {
    super();
    this.name = name;
    this.id = id;
}
@Override
public int compareTo(MyObject o) {
    return name.compareTo(o.getName());
}   
@Override
public String toString() {
    return name+"\t"+id+"\n";
}
}

         public class Test {
         public static void main(String[] args) {
            List<MyObject> list = new ArrayList<MyObject>();
     list.add(new MyObject("John", 10));
     list.add(new MyObject("Mark", 11));
     list.add(new MyObject("Steve", 9));
     Collections.sort(list);
     System.out.println("Sorted list is :"+list);
 }
 }
import java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
类MyObject实现了可比较的{
私有字符串名称;
私有int-id;
公共字符串getName(){
返回名称;
}
公共MyObject(字符串名称,int-id){
超级();
this.name=名称;
this.id=id;
}
@凌驾
公共内部比较(MyObject o){
返回name.compareTo(o.getName());
}   
@凌驾
公共字符串toString(){
返回名称+“\t”+id+“\n”;
}
}
公开课考试{
公共静态void main(字符串[]args){
列表=新的ArrayList();
添加(新的MyObject(“John”,10));
添加(新的MyObject(“Mark”,11));
添加(新的MyObject(“Steve”,9));
集合。排序(列表);
System.out.println(“排序列表为:“+list”);
}
}

您需要实现可比接口并覆盖compareTo。 在下面的示例中,我假设有一个成员变量“name”,您将在该变量上比较对象

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class MyObject implements Comparable<MyObject>{
private String name;
private int id;

public String getName() {
    return name;
}

public MyObject(String name, int id) {
    super();
    this.name = name;
    this.id = id;
}
@Override
public int compareTo(MyObject o) {
    return name.compareTo(o.getName());
}   
@Override
public String toString() {
    return name+"\t"+id+"\n";
}
}

         public class Test {
         public static void main(String[] args) {
            List<MyObject> list = new ArrayList<MyObject>();
     list.add(new MyObject("John", 10));
     list.add(new MyObject("Mark", 11));
     list.add(new MyObject("Steve", 9));
     Collections.sort(list);
     System.out.println("Sorted list is :"+list);
 }
 }
import java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
类MyObject实现了可比较的{
私有字符串名称;
私有int-id;
公共字符串getName(){
返回名称;
}
公共MyObject(字符串名称,int-id){
超级();
this.name=名称;
this.id=id;
}
@凌驾
公共内部比较(MyObject o){
返回name.compareTo(o.getName());
}   
@凌驾
公共字符串toString(){
返回名称+“\t”+id+“\n”;
}
}
公开课考试{
公共静态void main(字符串[]args){
列表=新的ArrayList();
添加(新的MyObject(“John”,10));
添加(新的MyObject(“Mark”,11));
添加(新的MyObject(“Steve”,9));
集合。排序(列表);
System.out.println(“排序列表为:“+list”);
}
}

您还可以使用
集合.sort()
库并传入您的集合(
ArrayList
)和专门为您的对象设计的
Comperator

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html[enter link description here][1]

您还可以使用
Collections.sort()
库并传入您的集合(
ArrayList
)和专门为您的对象设计的
Comperator

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html[enter link description here][1]

好的,在这里发布你的“myobject”的结构@arbit它是一个基本的
类myobject{private int num;/*构造函数,setter和getter for num*/}
,朋友。好的,在这里发布你的“myobject”的结构@arbit它是一个基本的
类myobject{private int num;/*构造函数,setter和getter for num here*/}
,朋友。谢谢你,朋友。就像我想的那么简单谢谢你,朋友。这和我想的一样简单。