আজকে একটা ডাটা স্ট্রাকচার নিয়ে কথা বলব । তার আগে সমস্যা টা নিয়ে বলি , ধরুন , আমরা কিছু ডাটা একটা লিস্ট এ রাখতে চাচ্ছি, কিন্তু লিসট এর সাইজ আমরা বলে দিব, ধরে নেই , লিস্ট এ ৮০ হাজার ডাটা সেভ হবে । যখনি ৮০ হাজার + ১ ডাটা ইন্সার্ট হবে , তখন আমার সর্ব প্রথমে যে ডাটা insert হবে সেই ডাটা ডিলিট হয়ে যাবে ।
Suppose, we want to store some data in a list, but we specify a size for the list. Let's assume we want to store 80,000 data points in the list. Whenever we try to insert one more data point after reaching 80,000, the very first data point that was inserted will be deleted.
import java.util.LinkedHashMap;
import java.util.Map;
public class ResultCache extends LinkedHashMap {
private static final int MAX_ENTRIES = 5;
public ResultCache() {
super(MAX_ENTRIES + 1, 0.75f, true);
}
@Override
protected boolean removeEldestEntry(Map.Entry eldest) {
boolean remove = size() > MAX_ENTRIES;
if (remove) {
System.out.println("Removing: " + eldest.getKey() + " " + eldest.getValue());
}
return remove;
}
// add data to the cache
public void addData(String data) {
System.out.println("Adding: " + data);
put(data, data);
}
// print data in the cache
public void printData() {
forEach((k, v) -> {
System.out.println(k + " " + v);
});
}
public static void main(String[] args) {
ResultCache resultCache = new ResultCache();
for (int i = 1; i < 10; i++) {
resultCache.addData("data" + i);
}
}
}

0 Comments