31 Temmuz 2016 Pazar

StringTokenizer Sınıfı

Giriş
Şu satırı dahil ederiz
import java.util.StringTokenizer;
Bu sınıfa ayraç listesi verilebilir.

Constructor - String + Ayraç + false Yani Normal Kullanım
Ayraçları token olarak bize vermez
Örnek
Şöyle yaparız.
String str = ...;
StringTokenizer tokenizer = new StringTokenizer(str, ",");
Constructor - String + Ayraç + true
Ayraçları da token olarak verir
Örnek
Şöyle yaparız.
String myString = "a+b-c*d/e";

 List<String> operatorList = new ArrayList<String>();
 List<String> operandList = new ArrayList<String>();
 StringTokenizer st = new StringTokenizer(myString, "+-*/", true);
 while (st.hasMoreTokens()) {
    String token = st.nextToken();

    if ("+-/*".contains(token)) {
       operatorList.add(token);
    } else {
       operandList.add(token);
    }
 }

 System.out.println("Operators:" + operatorList);
 System.out.println("Operands:" + operandList);
 Çıktı olarak şunu verir.
Operators:[+, -, *, /]
Operands:[a, b, c, d, e]
hasMoreTokens metodu
Şöyle kullanırız.
while(tokenizer.hasMoreElements()) {...}
nextToken metodu
Açıklaması şöyle
java.util.StringTokenizer can also throw NoSuchElementException if there is no more token or element and you call nextToken() or nextElement() method.
To get rid of this exception while using Stringtokenizer call hasMoreTokens() or hashMoreElements() before proceding to call nextToken() or nextElement().
Şöyle kullanırız.
while(tokenizer.hasMoreElements()) {
  string token = tokenizer.nextToken();
}

28 Temmuz 2016 Perşembe

DefaultListModel Sınıfı

Giriş
Bu sınıf JList ile kullanılır.

constructor
Şöyle yaparız
DefaultListModel<String> model = new DefaultListModel<String>(); 
add metodu
Şöyle yaparız
String contact = ...;
model.addElement(contact);


ByteOrder Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.nio.ByteOrder;
nativeOrder metodu
Şöyle yaparız.
if (ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)) {
  System.out.println("Big-endian");
} else {
  System.out.println("Little-endian");
}


27 Temmuz 2016 Çarşamba

IvParameterSpec Sınıfı

constructor
Şöyle yaparız.
IvParameterSpec iv = new IvParameterSpec("...".getBytes());

26 Temmuz 2016 Salı

FilterInputStream Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.io.FilterInputStream;
Bu sınıfın tam tersi işlemi FilterOutputStream Sınıfı yapar.

available metodu
İmzası şöyle
@Override
public int available() throws IOException;
read metodu
İmzası şöyle
@Override
public int read() throws IOException;
read metodu
İmzası şöyle
@Override
public int read(byte[] b, int off, int len) throws IOException;

FilterOutputStream Sınıfı

Giriş
Şu satırı dahil ederiz.
import java.io.FilterOutputStream;
Bu sınıfın tam tersi işlemi FilterInputStream Sınıfı yapar.

close metodu
İmzası şöyle
@Override
public void close() throws IOException;
flush metodu
İmzası şöyle
@Override
public void flush() throws IOException;
write metodu
İmzası şöyle
@Override
public void write(int b) throws IOException;
write metodu
İmzası şöyle
@Override
public void write(byte[] b, int boff, int blen) throws IOException;

Inflater Sınıfı - Veriyi Açar

Giriş
Şu satırı dahil ederiz.
import java.util.zip.Inflater;
Sıkıştırılmış veriyi açmak için kullanılır. Sıkıştırmak için Deflater Sınıfı kullanılır.

Kullanım
Açma (decompress) için şöyle yaparız
public static byte[] decompressImage(byte[] data) {
  Inflater inflater = new Inflater();
  inflater.setInput(data);
  ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
  byte[] tmp = new byte[4*1024];
  try {
    while (!inflater.finished()) {
      int count = inflater.inflate(tmp);
      outputStream.write(tmp, 0, count);
    }
    outputStream.close();
  } catch (Exception exception) {
  }
  return outputStream.toByteArray();
}
Örnek
Şöyle yaparız
public static byte[] decompress(byte[] compressedData) {
  if (compressedData.length == 0) {
    return compressedData;
  }
  Inflater inflater = new Inflater();
  inflater.setInput(compressedData);
  ByteArrayOutputStream bos = new ByteArrayOutputStream(compressedData.length);
  byte[] buf = new byte[1024];
  while (!inflater.finished()) {
    try {
      int count = inflater.inflate(buf);
      bos.write(buf, 0, count);
    } catch (DataFormatException e) {
      LOGGER.finest("Decompression failed", e);
    }
  }
  inflater.end();
  return bos.toByteArray();
}
constructor
Şöyle yaparız
Inflater inflater = new Inflater();
inflate metodu
Şöyle yaparız
//Buffer of uncompressed databyte[] outBuf = ...;
try {
  inflater.inflate(outBuf);
} catch(DataFormatException dfe) {
...
}
reset metodu
Şöyle yaparız
// Reset the inflator so we can re-use it
inflater.reset();
setInput metodu
Şöyle yaparız
//Buffer of compressed data read from the stream
byte[] inBuf = ...;

//Length of data in the input data
int inLength = ...;

inflater.setInput(inBuf, 0, inLength);


22 Temmuz 2016 Cuma

WeakReference Sınıfı - GC'yi Engellemez

Giriş
Şu satırı dahil ederiz.
import java.lang.ref.WeakReference;
Not :SoftReference yazısına da bakabilirsiniz.

GC devreye girince WeakReference'ın sahip olduğu nesne silinir.

Tek nesneye weak reference tutar. Daha fazla nesneye weak reference tutmak için WeakHashMap kullanılır

constructor
Şöyle yaparız.
Object obj = new Object();
WeakReference<Object> ref = new WeakReference<>(obj);
get metodu
Örnek
Şöyle yaparız.
Object obj = ref.get();
if (obj != null) {...}
Örnek
Şöyle yaparız.
HashMap<Employee, EmployeeVal> map = new HashMap<Employee, EmployeeVal>();
WeakReference<HashMap<Employee, EmployeeVal>> aMap = 
  new WeakReference<HashMap<Employee, EmployeeVal>>(map);

map = null;

while (null != aMap.get()) {
  aMap.get().put(new Employee("Foo"),new EmployeeVal("Bar"));
  System.out.println("Size of aMap " + aMap.get().size());
  System.gc();
}