Sunday, November 9, 2014
Sort Array using Arrays.sort
import java.util.Arrays;
public class SortArrayTest {
public static void main(String[] args){
String[] sa = {"banana","apple","orange"};
Arrays.sort(sa);
for (String s:sa){
System.out.println(s);
}
}
}
OUTPUT
apple
banana
orange
Deep Copy
// deep copy, in clone() it creates a new object
public class DeepCopyTest {
public static void main(String[] args) throws CloneNotSupportedException{
Student student = new Student("Jet","Chinese"); // create student object
Student student2 = student.clone(); // deep copy a new object student2
System.out.println("student name="+student2.getName()+" subject="+student2.getSubject().getName());// print out this new object student2
student.setName("Tom"); // change original object value
student.getSubject().setName("English");
System.out.println("student name="+student2.getName()+" subject="+student2.getSubject().getName()); // print out this new object value. it's changed.
}
}
public class Student implements Cloneable{
private String name;
private Subject subject;
public Student(String studentName, String subjectName) {
this.name = studentName;
this.subject = new Subject(subjectName);
}
@Override
public Student clone() throws CloneNotSupportedException {
Student student = new Student(name,subject.getName());
return student ;
}
public String getName() {
return this.name;
}
public Subject getSubject() {
return this.subject;
}
public void setName(String studentName) {
this.name = studentName;
}
}
package deepcopy;
public class Subject {
private String name;
public Subject(String subjectName) {
this.name = subjectName;
}
public String getName() {
return name;
}
public void setName(String subjectName) {
this.name = subjectName;
}
}
OUTPUT
student name=Jet subject=Chinese
student name=Jet subject=Chinese
public class DeepCopyTest {
public static void main(String[] args) throws CloneNotSupportedException{
Student student = new Student("Jet","Chinese"); // create student object
Student student2 = student.clone(); // deep copy a new object student2
System.out.println("student name="+student2.getName()+" subject="+student2.getSubject().getName());// print out this new object student2
student.setName("Tom"); // change original object value
student.getSubject().setName("English");
System.out.println("student name="+student2.getName()+" subject="+student2.getSubject().getName()); // print out this new object value. it's changed.
}
}
public class Student implements Cloneable{
private String name;
private Subject subject;
public Student(String studentName, String subjectName) {
this.name = studentName;
this.subject = new Subject(subjectName);
}
@Override
public Student clone() throws CloneNotSupportedException {
Student student = new Student(name,subject.getName());
return student ;
}
public String getName() {
return this.name;
}
public Subject getSubject() {
return this.subject;
}
public void setName(String studentName) {
this.name = studentName;
}
}
package deepcopy;
public class Subject {
private String name;
public Subject(String subjectName) {
this.name = subjectName;
}
public String getName() {
return name;
}
public void setName(String subjectName) {
this.name = subjectName;
}
}
OUTPUT
student name=Jet subject=Chinese
student name=Jet subject=Chinese
Friday, November 7, 2014
StringBuilder.insert - insert a string at position
public class InsertTest {
public static void main(String[] args){
StringBuilder sb = new StringBuilder("abcd");
sb.insert(sb.indexOf("b"),"word");// insert word at position of b
System.out.println(sb.toString());
}
}
OUTPUT:
awordbcd
Tuesday, November 4, 2014
Shallow Copy
cloned object has own copy for primitive member but for object member, it will be shared with original object
http://www.jusfortechies.com/java/core-java/deepcopy_and_shallowcopy.php
public class ShallowCopyTest {
public static void main(String[] args) throws CloneNotSupportedException{
Student stud = new Student("Jet","English");
Student stud2 = (Student) stud.clone();
System.out.println("student name="+stud2.getName()+" subject="+stud2.getSubject().getName());
stud.setName("Tom");
stud.getSubject().setName("Chinese");
System.out.println("after original object is updated, cloned student name="+stud2.getName()+" subject="+stud2.getSubject().getName());
}
}
public class Student implements Cloneable{
private String name;
private Subject subject;
public Student(String studentName, String subjectName) {
this.name = studentName;
this.subject = new Subject(subjectName);
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
public String getName() {
return this.name;
}
public Subject getSubject() {
return this.subject;
}
public void setName(String studentName) {
this.name = studentName;
}
}
Wednesday, October 29, 2014
Use BufferedReader to read a file
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class BufferedReaderTest {
public static void main(String[] args) throws Exception{
String fileName = "c:\\tmp\\test.txt";
File file = new File(fileName);
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line = "";
while ((line = br.readLine())!=null){
System.out.println("line="+line);
}
br.close();
fr.close();
}
}
Tuesday, October 28, 2014
Use BufferedWriter write to a file
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class BufferedWriterTest {
public static void main(String[] args) throws IOException{
String fileName = "C:\\tmp\\test.txt";
File file = new File(fileName); // File needs fileName
FileWriter fw = new FileWriter(file); // so here use Writer implementing class - FileWriter
BufferedWriter bw = new BufferedWriter(fw); //Writer can not be initialized b/c it's abstract class
try {
bw.write("this is my test file");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
bw.close(); // when close, the content can be written to the file
fw.close();
}
}
}
Sunday, October 26, 2014
Collections.synchronizedMap when map is used in thread
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
// HashMap is not synchronized
public class MapTest {
public static void main(String[] args){
Map<String, String> map = Collections.synchronizedMap(new HashMap<String, String>());
map.put("1", "a");
map.put("2", "b");
map.put("3", "c");
for (Map.Entry<String, String> entry:map.entrySet()){
System.out.println("key="+entry.getKey()+" value="+entry.getValue());
}
}
}
OUTPUT:
key=3 value=c
key=2 value=b
key=1 value=a
Subscribe to:
Posts (Atom)