Limited SortedSet

Я ищу реализацию SortedSet с ограниченным количеством элементов. Таким образом, если добавлено больше элементов, то указанный Максимум, компаратор решает, добавлять ли элемент и удалять ли последний из набора.

SortedSet<Integer> t1 = new LimitedSet<Integer>(3);
t1.add(5);
t1.add(3);
t1.add(1);
// [1,3,5]
t1.add(2);
// [1,2,3]
t1.add(9);
// [1,2,3]
t1.add(0);
// [0,1,2]

Есть ли в стандартном API элегантный способ сделать это?

Я написал тест JUnit для проверки реализаций:

@Test
public void testLimitedSortedSet() {
final LimitedSortedSet<Integer> t1 = new LimitedSortedSet<Integer>(3);
t1.add(5);
t1.add(3);
t1.add(1);
System.out.println(t1);
// [1,3,5]
t1.add(2);
System.out.println(t1);
// [1,2,3]
t1.add(9);
System.out.println(t1);
// [1,2,3]
t1.add(0);
System.out.println(t1);
// [0,1,2]
Assert.assertTrue(3 == t1.size());
Assert.assertEquals(Integer.valueOf(0), t1.first());
}
7
задан Andreas 5 December 2011 в 08:52
поделиться