Вы можете попробовать Guava CacheBuilder
Например;
инициализировать хранилище токенов;
final Cache<String, String> tokens = CacheBuilder.newBuilder()
.expireAfterWrite(100, TimeUnit.SECONDS)
.build();
положить несколько токенов;
tokens.put("TOKEN_1", "TOKEN_1");
tokens.put("TOKEN_2", "TOKEN_2");
удалить токен после использования;
synchronized (tokens) {
tokens.getIfPresent("USED_TOKEN");
tokens.invalidate("USED_TOKEN");
}
Они будут удалены из кэша через 100 секунд, даже если они не используются