TreeSetにIdentityHashMapのように(k1==k2) の場合にかぎり
2つのキー k1 と k2 が同等であると見なすように要素を格納したいです。

比較は基本的にはフィールド変数のnumberで行います。

以下のようにグローバルIDを与えれば、できることは分かっています。
(gIDはグローバルIDです。各オブジェクトに対して固有のIDが与えられます)
できればグローバルIDといったものを使わずに実現したいのですが、
方法が分かりません。どのようにしたらよいのでしょうか?

class N implements Comparable {
 int number;
 int gID;
 N(int number, int gID) {
    this.number = number;
    this.gID = gID;
 }
 public int compareTo(Object o) {
    if (this == o)return 0;
    N n = (N) o;
    if (this.number < n.number)return -1;
    if (this.number > n.number)return 1;
    if (this.gID < n.gID)return -1;
    if (this.gID > n.gID)return 1;
    else return 0;//実際にはこの分岐まで到達することはない
 }
 public boolean equals(Object obj) {
    if (this == obj)return true;
    return false;
 }
}