package com.codegym.task.task33.task3310;
import com.codegym.task.task33.task3310.strategy.HashMapStorageStrategy;
import com.codegym.task.task33.task3310.strategy.StorageStrategy;
import javax.xml.crypto.Data;
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> set = new HashSet<>();
for(String s : strings) {
Long id = shortener.getId(s);
set.add(id);
}
return set;
}
public static Set<String> getStrings(Shortener shortener, Set<Long> keys) {
Set<String> set = new HashSet<>();
for (Long id : keys)
set.add(shortener.getString(id));
return set;
}
public static void testStrategy(StorageStrategy strategy, long elementsNumber) {
Helper.printMessage(strategy.getClass().getName());
//6.2.3.2
Set<String> strings = new HashSet<>();
Long[] elements = new Long[(int) elementsNumber];
for (int i = 0; i < elementsNumber; i++)
strings.add(Helper.generateRandomString());
//6.2.3.3
Shortener shortener = new Shortener(strategy);
//6.2.3.4.
Date startTime = new Date();
Set<Long> ids = getIds(shortener,strings);
Date endTime = new Date();
long detalTime = endTime.getTime() - startTime.getTime();
Helper.printMessage(String.valueOf(detalTime));
//6.2.3.5
startTime = new Date();
Set<String> strs = getStrings(shortener, ids);
endTime = new Date();
detalTime = endTime.getTime() - startTime.getTime();
Helper.printMessage(Long.toString(detalTime));
//6.2.3.6
if (strings.equals(strs))
Helper.printMessage("The test passed.");
else
Helper.printMessage("The test failed.");
}
public static void main(String[] args) {
StorageStrategy strategy = new HashMapStorageStrategy();
testStrategy(strategy, 10000);
}
}
fix it
Under discussion
Comments (1)
- Popular
- New
- Old
You must be signed in to leave a comment
Yu-Ping Lin
11 May 2020, 05:56
implement
+4