package Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.NavigableMap;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.stream.Collectors;
public class Test {
static >
SortedSet> entriesSortedByValues(Map map) {
SortedSet> sortedEntries = new TreeSet>(
new Comparator>() {
@Override public int compare(Map.Entry e1, Map.Entry e2) {
int res = e1.getValue().compareTo(e2.getValue());
return res != 0 ? res : 1;
}
}
);
sortedEntries.addAll(map.entrySet());
return sortedEntries;
}
public static void main(String[] args) {
Map random = new HashMap();
for (int i = 0; i < 10; i++) {
random.put(100-i, "a"+i);
}
LinkedHashMap sortedMap =
random.entrySet().stream().
sorted(Entry.comparingByValue()).
collect(Collectors.toMap(Entry::getKey, Entry::getValue,
(e1, e2) -> e1, LinkedHashMap::new));
System.out.println(sortedMap);
System.out.println(entriesSortedByValues(random));
System.out.println("Initial Map: " + Arrays.toString(random.entrySet().toArray()));
// creating tree map
NavigableMap
treemap = new TreeMap();
// populating tree map
treemap.put(1, " A ");
treemap.put(2, " B ");
treemap.put(3, " C ");
treemap.put(4, " D ");
treemap.put(5, " D ");
treemap.put(6, " E ");
treemap.put(7, " F ");
// Since 6 is the least value greater than 5,
// it is returned as the key.
System.out.println("Ceiling key entry for 5: "
+ treemap.ceilingKey(5));
ArrayList ilist = new ArrayList<>();
ilist.add(1);
ilist.add(2);
ilist.add(3);
ilist.add(4);
Email e = new Email();
int[] arr1 = {1,2,3,4,5};
ArrayList arList = new ArrayList<>();
arList.add(1);
arList.add(1);
arList.add(1);
arList.add(1);
String v = "tarikj-murat";
String v2 = v.substring(0,v.indexOf('-'));
System.out.println("value = "+ v2);
ArrayList liste = new ArrayList<>();
for(long i=0L;i<1000000L;i++){
liste.add(i);
}
long startTime = System.currentTimeMillis();
int a = Collections.binarySearch(liste, 500000L);
System.out.println(a);
for(long l : liste) {
if(l==500000L)
break;
}
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println("time "+totalTime +" ms");
classicFor(liste);
classicForEach(liste);
listForEach(liste);
streamListForEach(liste);
}
public class ValueComparator implements Comparator {
private Map map;
public ValueComparator(Map map) {
this.map = map;
}
public int compare(Integer a, Integer b) {
return map.get(a).compareTo(map.get(b));
}
}
public static void classicFor(ArrayList liste ){
long startTime = System.currentTimeMillis();
for(int i = 0; i < liste.size(); i++) {
doIt(liste.get(i));
}
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println("classicFor "+totalTime +" ms");
}
public static void classicForEach(ArrayList liste ){
long startTime = System.currentTimeMillis();
for(long i : liste) {
doIt(i);
}
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println("classicForEach "+totalTime+ " ms");
}
public static void listForEach(ArrayList liste ){
long startTime = System.currentTimeMillis();
liste.forEach(i -> doIt(i));
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println("listForEach "+totalTime+ " ms");
}
public static void doIt(long i) {
}
public static void streamListForEach(ArrayList liste ){
long startTime = System.currentTimeMillis();
liste.stream().forEach(i -> doIt(i));
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println("streamListForEach "+totalTime+" ms");
}
}