比较一个Arraylist并给出输出

时间:2014-07-03 21:58:30

标签: java arraylist

我有两个ArrayLists。如何比较arraylists中的元素并使用结果创建新列表?

我需要遍历列表才能真正得到结果并进行比较。我怎么能用Java做到这一点?

感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:0)

您可以通过实施Comparator类进行比较。您可以通过以下示例了解两个时间类的比较。

class Time
{
    int hours,minutes,seconds;
    public Time(int hours,int minutes,int seconds)
    {
        this.hours=hours;
        this.minutes=minutes;
        this.seconds=seconds;
    }
    public int getHours()
    {
        return this.hours;
    }
    public int getMinutes()
    {
        return this.minutes;
    }
    public int getSeconds()
    {
        return this.seconds;
    }
    public String toString()
    {
        return String.format("%d:%02d:%02d %s",((hours==0||hours==12)?   12:hours%12),this.minutes,this.seconds,((hours>=12)?"PM":"AM"));
    }  
}
class TimeComparator implements Comparator<Time>
{
    public int compare(Time t1,Time t2)
    {
        int hours=t1.getHours()-t2.getHours();
        int minutes=t1.getMinutes()-t2.getMinutes();
        int seconds=t1.getSeconds()-t2.getSeconds();
        if(hours>0)
        return 1;
        else if(hours<0)
        return -1;
        if(minutes>0)
        return 1;
        else if(minutes<0)
        return -1;
        if(seconds>0)
        return 1;
        else if(seconds<0)
        return -1;
        return 0;
    }
    public boolean equals(Object obj)
    {
        return true;
    }
}

在此之后,您可以使用Collections类来使用排序或搜索等任何方法。

答案 1 :(得分:0)

我希望以下大量代码能帮助您入门。

import java.util.ArrayList;

class Compare {
  public static void main(String[] args) {
    ArrayList<String> a = new ArrayList<String>();
    a.add("Hello");
    a.add("Goodbye");
    ArrayList<String> b = new ArrayList<String>();
    b.add("Hello");
    b.add("Bye");

    if (a.size() != b.size()) {
      System.out.println("Arrays must have the same size");
      return;
    }

    ArrayList<Boolean> results = new ArrayList<Boolean>();
    for(int i = 0; i < a.size(); ++i)
      results.add(a.get(i).equals(b.get(i)));

    for(int i = 0; i < a.size(); ++i)
      System.out.println(results.get(i));
  }
}