Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.util.Set;
import java.util.TreeSet;

public class Main {
    public static void main(String[] args) {
        Set<Counter> set = new TreeSet<Counter>();

        set.add(new Counter("A", 1));
        set.add(new Counter("B", 5));
        set.add(new Counter("C", 10));
        set.add(new Counter("D", 4));
        set.add(new Counter("E", 3));
        set.add(new Counter("F", 5));
        set.add(new Counter("G", 15));
        set.add(new Counter("H", 225));
        set.add(new Counter("I", 225));
        for (Counter f : set) {
            System.out.println(f);
        }
    }
}

class Counter implements Comparable<Counter> {
    private String name;
    private int freq;

    public Counter(String name, int freq) {
        this.name = name;
        this.freq = freq;
    }

    @Override
    public boolean equals(Object o) {
        if (o == null)
            return false;
        if (o.getClass().isAssignableFrom(Counter.class)) {
            Counter other = (Counter) o;
            return other.freq == this.freq && other.name.equals(this.name);
        } else {
            return false;
        }
    }

    @Override
    public int compareTo(Counter other) {
        if (freq == other.freq) {
            return name.compareTo(other.name);
        } else {
            return freq - other.freq;
        }
    }

    @Override
    public String toString() {
        return name + ":" + freq;
    }
}