26 Aralık 2019 Perşembe

DoubleMath Sınıfı

Giriş
Şu satırı dahil ederiz
import com.google.common.math.DoubleMath;
fuzzyEquals metodu
Örnek
Şöyle yaparızz
if (DoubleMath.fuzzyEquals(a, b, epsilon)) {
   // a and b are equal within the tolerance given
}
log2 metodu
1. Girdi NaN ise sonuç NaN olur. (*)
2. Girdi artı Infinity ise sonuç artı Infinity olur. (+)
3. Girdi 0 ise ise sonuç eksi Infinity olur.
4. Girdi eksi Infinity ise sonuç eksi Infinity olur. (+)
5. Girdi eksi sayı ise ise sonuç NaN olur.(*)

1,5 kurallarını, girdi NaN veya eksi ise sonuç NaN olur şeklinde genelleştirebiliriz.
2,4 kurallarını, girdi Infinity ise sonuç Infinity olur şeklinde genelleştirebiliriz.

25 Aralık 2019 Çarşamba

IntMath Sınıfı

Giriş
Bu sınıf ile sonuçlar hep int olarak alınır. LongMath ve BigIntegerMath sınıfları kardeştir.

binomial metodu
Örnek ver

checkedPow metodu
Taşma (overflow) durumunda ArithmeticException fırlatır.

divide metodu
İki tane integer bölününce sonuç double çıkar gibi düşünülürse bu sonucu istenilen yöne yuvarlayıp int elde etmek için kullanılır

Örnek - Hep Pozitif Sonsuza Yuvarlama
Şöyle yaparız. Bölme işlemini 5 /2 gibi düşünürsek sonu 3 çıkar. -5 /2 gibi düşünürsek sonuç -2 çıkar.
IntMath.divide(numerator, divisor, RoundingMode.CEILING);
pow metodu
Örnek ver

sqrt metodu
Şöyle yaparız.
int sqrtX = IntMath.sqrt(x, RoundingMode.HALF_EVEN);

17 Aralık 2019 Salı

ImmutableSortedMap Sınıfı - TreeMap ile Benzeşir

copyOf metodu
Şöyle yaparız.
Map<String, Long> intermediateMap = Stream.of("b", "a", "c", "b")
  .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
ImmutableSortedMap<String, Long> desiredMap = ImmutableSortedMap.copyOf(intermediateMap);

System.out.println(desiredMap); // Outputs {a=1, b=2, c=1}, which is the desired state
toImmutableSortedMap metodu
Örnek
Şöyle yaparız.
 Map<String, Long> result =
        Stream.of("b", "a", "c", "b")
              .collect(ImmutableSortedMap.toImmutableSortedMap(
                  Comparator.naturalOrder(),
                  Function.identity(),
                  x -> 1L,
                  Long::sum
              ));

15 Aralık 2019 Pazar

Multisets Sınıfı

copyHighestCountFirst metodu
Elimizde şöyle bir kod olsun
List<BigDecimal> listOfNumbers= ...;
Şöyle yaparız.
BigDecimal mostCommon = 
    Multisets.copyHighestCountFirst(ImmutableMultiset.copyOf(listOfNumbers))
        .iterator().next();
toMultiset metodu
Şöyle yaparız.
.collect(Multisets.toMultiset(Function.identity(), i -> 1, TreeMultiset::create));

ImmutableSortedMultiset Sınıfı

copyOf metodu
Şöyle yaparız.
List<String> temp = Stream.of("b, c", "a", "  ", "a, c")
            .filter(StringUtils::isNotBlank)
            .map(val -> val.split(","))
            .flatMap(Arrays::stream)
            .map(String::trim)
            .collect(Collectors.toList());

    Multiset<String> multiset = ImmutableSortedMultiset.copyOf(temp);

System.out.println("As list: " + temp);
System.out.println("As multiset: " + multiset);
// Output is:
// As list: [b, c, a, a, c]
// As multiset: [a x 2, b, c x 2]
naturalOrder metodu
Şöyle yaparız.
.collect(Collector.of(
    ImmutableSortedMultiset::<String>naturalOrder,
    ImmutableSortedMultiset.Builder::add,
    (b1, b2) -> {b1.addAll(b2.build()); return b1;},
    ImmutableSortedMultiset.Builder::build)
);
toImmutableSortedMultiset metodu
Şöyle yaparız.
.collect(ImmutableSortedMultiset.toImmutableSortedMultiset(Comparator.naturalOrder()));