给定一个区间,在集合中找出所有与之相交的区间

给定区间a
区间集合S,含有1000个区间。这些区间可能相交,或相连,或包含等。
所有区间都是闭区间。区间,大小随机,范围随机。
找出S中所有与a相交的区间,只交一个点也算。

可以对S先处理,如排序啊或做一个数据结构什么的。但要求在查找时不会遍历S中的所有区间。

有什么思路吗?或用什么数据结构?用JAVA应该如何实现

区间的范围多大,区间两端是否是整点?