Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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?_Java_Arraylist_Javafx_Smack_Alter - Fatal编程技术网

Java 如何更改我的arraylist?

Java 如何更改我的arraylist?,java,arraylist,javafx,smack,alter,Java,Arraylist,Javafx,Smack,Alter,我搜索了更多关于我的问题的信息,但是我知道我已经考虑过了,我需要修改arraylist。我看到了这个fuctions Collections.swap(list,x,y),这很酷,但前提是我想用一个元素替换另一个元素。因此,我需要一种方法来更改第一个位置,并在这种情况下让我的用户联机: if(userpresence.getmode()==null&&userpresence.isAvailable()){ listItem.add(new contacts(name,user,

我搜索了更多关于我的问题的信息,但是我知道我已经考虑过了,我需要修改arraylist。我看到了这个fuctions Collections.swap(list,x,y),这很酷,但前提是我想用一个元素替换另一个元素。因此,我需要一种方法来更改第一个位置,并在这种情况下让我的用户联机:

if(userpresence.getmode()==null&&userpresence.isAvailable()){
listItem.add(new contacts(name,user,icon))
}
if(userpresence.getmode()==null&&!userpresence.isAvailable()){
    listItem.add(new contacts(name,user,icon))
}
在本部分中,我将以标签方式显示列表排序:

    Collections.sort(listItem);

//I think the method about I tell you is in this part 

    ObservableList<Contacts> ob=FXCollections.observableArrayList(listItem);
    listview.setitems(ob);
但在这种情况下,只有我这样表示:

user offline
user offline
user offline
user offline
user offline
user online
user offline
user offline
user offline
user online
user offline
user offline
user offline
user online
user offline
user offline
user offline
user online
user offline
user offline
user offline
user online
user offline
user offline
user offline
user offline
user online
user offline
user offline
因为我试着做比较,结果没有显示出来。 这是我的方法比较器:

public static Comparator<Contacts> contactsComparator=new Comparator<Contacts>(){
    @Override
    public int compare(Contacts c1, Contacts c2) {
        String ContactName1=c1.getName().toUpperCase();
        String ContactName2=c2.getName().toUpperCase();


        return ContactName1.compareTo(ContactName2);
    }
};
public static Comparator contacts Comparator=new Comparator(){
@凌驾
公共整数比较(触点c1、触点c2){
字符串ContactName1=c1.getName().toUpperCase();
字符串ContactName2=c2.getName().toUpperCase();
返回ContactName1.compareTo(ContactName2);
}
};

在collections.sort中,我将其放入(arraylist,contacts.contactsComparator)

collections.sort(list)仅在对象实现java.lang.Comparable接口时才起作用。否则,还需要实现java.util.Comparator并将其传递给sort方法。定义对象的排序顺序时需要使用这两种方法。

集合。只有当对象实现java.lang.Compariable接口时,排序(列表)才有效。否则,还需要实现java.util.Comparator并将其传递给sort方法。定义对象的排序顺序时需要使用这两种方法。

您的问题是如何对arraylist进行排序?不清楚你在问什么。静态
sort()
方法将对具有自然顺序的列表进行排序。通过类(在本例中为“联系人”)建立自然顺序实现可比较的界面。不完全是因为我已经有了我的列表顺序,现在我需要使用swapI方法。我不明白你想做什么。我尝试创建一个类似于skype、psi或facebookSo的联系人列表,你希望在线用户首先出现在列表中。这意味着列表的顺序不符合您的要求。您的问题是如何对arraylist进行排序?不清楚你在问什么。静态
sort()
方法将对具有自然顺序的列表进行排序。通过类(在本例中为“联系人”)建立自然顺序实现可比较的界面。不完全是因为我已经有了我的列表顺序,现在我需要使用swapI方法。我不明白你想做什么。我尝试创建一个类似于skype、psi或facebookSo的联系人列表,你希望在线用户首先出现在列表中。这意味着列表的顺序不是你想要的。我实现了collections.sort(arraylist),这很好,我需要使用另一种方法来改变位置,我认为最好的方法是使用方法交换,但是我有很多位置,我需要将用户在线放在列表的顶部。我是说联系人类。它是否实现了可比较的接口()?如果你不确定我的意思,请张贴其代码。不,您不需要手动交换列表中的元素。如果使用正确,Collections.sort()可以做到这一点。我实现了Collections.sort(arraylist),这很好,我需要使用另一个方法来更改位置,我认为最好的方法是使用方法swap,但是我有很多位置,我需要将用户在线放在我的列表的顶部。我指的是Contacts类。它是否实现了可比较的接口()?如果你不确定我的意思,请张贴其代码。不,您不需要手动交换列表中的元素。如果使用正确,Collections.sort()会执行此操作。
public static Comparator<Contacts> contactsComparator=new Comparator<Contacts>(){
    @Override
    public int compare(Contacts c1, Contacts c2) {
        String ContactName1=c1.getName().toUpperCase();
        String ContactName2=c2.getName().toUpperCase();


        return ContactName1.compareTo(ContactName2);
    }
};