4 Temmuz 2019 Perşembe

POI Excel SXSSFSheet Sınıfı

createRow metodu
Şöyle yaparız.
SXSSFSheet sheet = ...;

int no_of_rows = 50000;

for(int i=0;i<=no_of_rows;i++) {
  SXSSFRow row1 = sheet.createRow(i);
  ...
}
addDataValidation metodu - DataValidation
Drop down liste ekler.
Örnek
Şöyle yaparız.
String[] optionsArray = new String[] {"1000.00","2000.00"};

int no_of_rows = 50000;

DataValidationConstraint constraint1 = sheet.getDataValidationHelper()
  .createExplicitListConstraint(optionsArray);
CellRangeAddressList addressList1 = new CellRangeAddressList(0, no_of_rows, 0, 0);
DataValidation dataValidation1 = sheet.getDataValidationHelper()
  .createValidation(constraint1, addressList1);
sheet.addValidationData(dataValidation1);
getDataValidationHelper metodu
Şöyle yaparız.
String[] optionsArray = new String[] {"1000.00","2000.00"};
DataValidationConstraint constraint1 = sheet.getDataValidationHelper()
  .createExplicitListConstraint(optionsArray);

POI Excel SXSSFWorkbook Sınıfı

Giriş
Şu satrı dahil ederiz
import org.apache.poi.xssf.streaming.SXSSFWorkbook ;
constructor
Şöyle yaparız.
 SXSSFWorkbook workbook = new SXSSFWorkbook(100);
createSheet metodu
Şöyle yaparız.
SXSSFSheet sheet = workbook.createSheet();
write metodu
Şöyle yaparız.
FileOutputStream fos = new FileOutputStream(new File("testout.xlsx"));
workbook.write(fos);
workbook.close();
fos.close();

3 Temmuz 2019 Çarşamba

BidiMap Arayüzü

Giriş
Birectional map içindir.

ArithmeticUtils Sınıfı

factorial metodu
Şöyle yaparız.
long factorial = ArithmeticUtils.factorial(5);
System.out.println(factorial); // "120"
lcm - least common multiple
En küçük ortak katı verir. 4 ve 6 için 12'dir.

26 Haziran 2019 Çarşamba

Validate Sınıfı

notNull metodu
Şöyle yaparız. Kendi mesajımızla NullPointerException fırlatır.
Validate.notNull(data, "Data cannot be null");

25 Haziran 2019 Salı

ArrayListValuedHashMap Sınıfı - Multimap

Giriş
Şu satırı dahil ederiz..
import org.apache.commons.collections4.MultiValuedMap.ArrayListValuedHashMap;
Maven
Şu satırı dahil ederiz.
<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-collections4</artifactId>
  <version>4.1</version>
</dependency>
Klasik bir multimap örneğidir. Bu sınıf çift (duplicate) value değerleri kabul eder.

Bu sınıfın kardeşi HashSetValuedHashMap çift (duplicate) value değerlere izin vermez.

Kalıtım
MultiValuedMap arayüzünden kalıtır. MultiValuedMap arayüzü de SetValuedMap arayüzünden kalıtır. Açıklaması şöyle
SetValuedMap does not implement Map interface. It has a difference in for example put() method return value types and therefore they are "incompatible" in that sense. It is a utility class from Apache commons and not "standard Java".
constructor
Şöyle yaparız.
MultiValuedMap<String, String> associationsMap = new ArrayListValuedHashMap<>();
get metodu
Collection<V> döndürür.

24 Haziran 2019 Pazartesi

MultiKeyMap Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.apache.commons.collections4.map.MultiKeyMap;
Birden fazla key değeri ile bir value değerini eşleştirir. Bu sınıf aslında şuna benziyor.
ConncurrentMap<BiKey,Stuff> map = new ConcurrentHashMap<BiKey,Stuff>();

class BiKey{
    Key1 k1;
    Key2 k2;
    //let equals return k1.equqls&&k2.equals and implement hashCode accordingly
 }
constructor
Şöyle yaparız.
MultiKeyMap<String, String> multiKeyMap = new MultiKeyMap();
decorate metodu
LinkedMap vererek insertion order'ın korunmasını sağlarız

entrySet metodu
Şöyle yaparız.
MultiKeyMap<String, String> multiKeyMap = new MultiKeyMap();

multiKeyMap.put( "a1", "b1", "c1", "value1");
multiKeyMap.put( "a2", "b2", "c2", "value1");

for(Map.Entry<MultiKey<? extends String>, String> entry: multiKeyMap.entrySet()){
  System.out.println(entry.getKey().getKey(0)
    +" "+entry.getKey().getKey(1)
    +" "+entry.getKey().getKey(2)
    + " value: "+entry.getValue());
}
get metodu
Şöyle yaparız.
String s = multiKey.get("key1.1", "key2.1");
multiKeyMap metodu
Şöyle yaparız.
MultiKeyMap cache = MultiKeyMap.multiKeyMap(new LRUMap(50));
put metodu
Şöyle yaparız.
multiKey.put("key1.1", "key2.1", "value1");