Giới thiệu
StringBuffer tương tự StringBuilder nhưng thread-safe (đồng bộ hóa), phù hợp môi trường đa luồng.
Bước 1-2: Project & Giao diện
Giống y hệt StringBuilder (5 TextView).
Bước 3: MainActivity.java - thay StringBuilder bằng StringBuffer
package com.example.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
EditText edit_query;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit_query = findViewById(R.id.edit_query);
final TextView tv = findViewById(R.id.text);
final TextView tv1 = findViewById(R.id.text1);
final TextView tv2 = findViewById(R.id.text2);
final TextView tv3 = findViewById(R.id.text3);
final TextView tv4 = findViewById(R.id.text4);
findViewById(R.id.click).setOnClickListener(v -> {
String input = edit_query.getText().toString();
if (input.isEmpty()) return;
StringBuffer sb = new StringBuffer(input);
tv.setText("Gốc: " + sb);
tv1.setText("Insert tại 0: " + sb.insert(0, "tutorialspoint.com "));
tv2.setText("Capacity: " + sb.capacity());
tv3.setText("Delete(1,3): " + sb.delete(1, 3));
tv4.setText("Append: " + sb.append(" appended"));
});
}
}
So sánh StringBuilder vs StringBuffer
| Đặc điểm | StringBuilder | StringBuffer |
|---|---|---|
| Thread-safe | Không | Có (synchronized) |
| Hiệu năng | Cao hơn | Thấp hơn do khóa |
| Sử dụng khi | Single-thread, hiệu năng quan trọng | Multi-thread chia sẻ buffer |
Chạy ứng dụng
Kết quả giống StringBuilder nhưng an toàn cho đa luồng.
