После часа борьбы с валидатором, скопировал все методы из hashmap, но всё равно не проходит по третьему пункту. Может, кто-то сталкивался?
package com.javarush.task.task33.task3310;
import com.javarush.task.task33.task3310.strategy.HashMapStorageStrategy;
import com.javarush.task.task33.task3310.strategy.StorageStrategy;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
public class Solution {
public static Set<Long> getIds(Shortener shortener, Set<String> strings) {
Set<Long> idSet = new HashSet<>();
for (String str:
strings) {
idSet.add(shortener.getId(str));
}
return idSet;
}
public static Set<String> getStrings(Shortener shortener, Set<Long> keys) {
Set<String> stringSet = new HashSet<>();
for (Long k:
keys) {
stringSet.add(shortener.getString(k));
}
return stringSet;
}
public static void testStrategy(StorageStrategy strategy, long elementsNumber) {
System.out.println(strategy.getClass().getSimpleName());
Set<String> testSet = new HashSet<>();
for (int i = 0; i < elementsNumber; i++) {
testSet.add(Helper.generateRandomString());
}
Shortener shortener = new Shortener(strategy);
long timeBeforeTest = new Date().getTime();
Set<Long> resultIdSet = getIds(shortener, testSet);
long timeAfterTest = new Date().getTime();
long durationTime = timeAfterTest - timeBeforeTest;
System.out.println(durationTime);
timeBeforeTest = new Date().getTime();
Set<String> resultStringSet = getStrings(shortener, resultIdSet);
timeAfterTest = new Date().getTime();
durationTime = timeAfterTest - timeBeforeTest;
System.out.println(durationTime);
if(testSet.equals(resultStringSet))
System.out.println("Тест пройден.");
else
System.out.println("Тест не пройден.");
}
public static void main(String[] args) {
StorageStrategy ss = new HashMapStorageStrategy();
long q = 10000;
testStrategy(ss, q);
}
}