相关疑难解决方法(0)

为什么我需要覆盖Java中的equals和hashCode方法?

最近我读了这个 Developer Works文档.

该文档是关于定义hashCode()equals()有效和正确的,但我无法弄清楚为什么我们需要覆盖这两种方法.

如何有效地实施这些方法?

java equals hashcode

355
推荐指数
15
解决办法
39万
查看次数

如何在Java中使用Comparator进行排序

我学会了如何使用比较器,但我对比较器有困难.我的代码中有错误:

Exception in thread "main" java.lang.ClassCastException: New.People cannot be cast to java.lang.Comparable
 at java.util.Arrays.mergeSort(Unknown Source)
 at java.util.Arrays.sort(Unknown Source)
 at java.util.Collections.sort(Unknown Source)
 at New.TestPeople.main(TestPeople.java:18)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

import java.util.Comparator;

public class People implements Comparator {
   private int id;
   private String info;
   private double price;

   public People(int newid, String newinfo, double newprice) {
       setid(newid);
       setinfo(newinfo);
       setprice(newprice);
   }

   public int getid() {
       return id;
   }

   public void setid(int id) {
       this.id = id;
   }

   public String getinfo() {
       return info;
   }

   public void setinfo(String info) …
Run Code Online (Sandbox Code Playgroud)

java sorting comparator

163
推荐指数
6
解决办法
49万
查看次数

Java Comparator使用.reverseOrder()但内部类

我正在创建一个简单的程序来了解Java Comparator类.我已按Arraylist顺序排序,但现在我想按降序对列表进行排序,但是在调用.reverseOrder()方法时遇到问题,因为我使用了一个实现的内部类Comparator<Song>(歌曲是一个包含getter和setter方法的歌曲类).

这是我的SongSort班级,其中包括分拣过程等.

import java.util.*;
import java.io.*;

public class SongSort
{
    ArrayList<Song> songList = new ArrayList<Song>();

    public void main(String[] args)
    {
        new SongSort().go();
    }

    class ArtistCompare implements Comparator<Song>
    {
        public int compare(Song one, Song two)
        {
            return one.getRating().compareTo(two.getRating());
        }
    }


    public void go()
    {

        getSongs();
        System.out.println(songList);
        //Collections.sort(songList); 
        System.out.println(songList);

        ArtistCompare artistCompare = new ArtistCompare();
        Collections.sort(songList, artistCompare);
        System.out.println(songList);
    }



    public void getSongs()
    {
        try{
            File file = new File("SongListMore.txt");
            BufferedReader reader = new BufferedReader(new …
Run Code Online (Sandbox Code Playgroud)

java sorting comparable

27
推荐指数
2
解决办法
6万
查看次数

标签 统计

java ×3

sorting ×2

comparable ×1

comparator ×1

equals ×1

hashcode ×1