'Java'에 해당되는 글 26건

  1. 2012.02.09 Java 1.7 New Features 코드 샘플
  2. 2012.02.04 정렬 알고리즘
  3. 2012.01.27 Mergesort
  4. 2012.01.27 Quicksort
  5. 2012.01.26 Binary Search (3)
  6. 2012.01.26 Sequential Search
  7. 2012.01.25 ZIP포멧으로 압축하기
  8. 2012.01.25 기존 파일에 콘텐츠 추가하기
  9. 2012.01.25 파일 쓰기 - BufferedWriter
  10. 2012.01.25 파일 쓰기 - FileOutputStream


1. Language support for collections

List<String> list = ["item"];
String item = list[0];

Set<String> set = {"item"};

Map<String, Integer> map = {"key" : 1};
int value = map["key"]; 



2. Automatic Resource Management

BufferedReader br = new BufferedReader(new FileReader(path));
try {
   return br.readLine();
} finally {
   br.close();
} 

->

try (BufferedReader br = new BufferedReader(new FileReader(path)) {
   return br.readLine();
} 



3. Improved Type Inference for Generic Instance Creation (diamond)

Map<String, List<String>> map = new HashMap<>(); 



4. Strings in switch

String availability = "available";
switch(availability) {
 case "available":
    //code
    break;

  case "unavailable":
    //code
    break;

  case "merged":
    //code

  default:
    //code
    break;
} 




저작자 표시 비영리
신고

'Java' 카테고리의 다른 글

Java 1.7 New Features 코드 샘플  (0) 2012.02.09
정렬 알고리즘  (0) 2012.02.04
Binary Search  (3) 2012.01.26
Sequential Search  (0) 2012.01.26
java에서 손쉽게 JSON을 사용한다. JSON.simple example – Read and write JSON  (0) 2012.01.20
Java Garbage Collection  (0) 2012.01.19
Posted by jeonguk

정렬 알고리즘

Java 2012.02.04 21:43 |

http://www.sorting-algorithms.com/
 
저작자 표시 비영리
신고

'Java' 카테고리의 다른 글

Java 1.7 New Features 코드 샘플  (0) 2012.02.09
정렬 알고리즘  (0) 2012.02.04
Binary Search  (3) 2012.01.26
Sequential Search  (0) 2012.01.26
java에서 손쉽게 JSON을 사용한다. JSON.simple example – Read and write JSON  (0) 2012.01.20
Java Garbage Collection  (0) 2012.01.19
Posted by jeonguk

Mergesort

Java/Collection 2012.01.27 15:10 |

샘플 코드:

public class Mergesort {
private int[] numbers;
private int[] helper;
private int number;
public void sort(int[] values) {
this.numbers = values;
number = values.length;
this.helper = new int[number];
mergesort(0, number - 1);
}
private void mergesort(int low, int high) {
// check if low is smaller then high, if now then the array is sorted
if (low < high) {
// Get the index of the element which is in the middle
int middle = (low + high) / 2;
// Sort the left side of the array
mergesort(low, middle);
// Sort the right side of the array
mergesort(middle + 1, high);
// Combine them both
merge(low, middle, high);
}
}
private void merge(int low, int middle, int high) {
// Copy both parts into the helper array
for (int i = low; i <= high; i++) {
helper[i] = numbers[i];
}
int i = low;
int j = middle + 1;
int k = low;
// Copy the smallest values from either the left or the right side back
// to the original array
while (i <= middle && j <= high) {
if (helper[i] <= helper[j]) {
numbers[k] = helper[i];
i++;
} else {
numbers[k] = helper[j];
j++;
}
k++;
}
// Copy the rest of the left side of the array into the target array
while (i <= middle) {
numbers[k] = helper[i];
k++;
i++;
}
}

private static void printResult(int[] numbers) {
for (int i = 0; i < numbers.length; i++) {
System.out.print(" "+numbers[i]);
}
System.out.println();
}
private static boolean validate(int[] numbers) {
for (int i = 0; i < numbers.length - 1; i++) {
if (numbers[i] > numbers[i + 1]) {
return false;
}
}
return true;
}
public static void main(String[] args) {
int[] test = { 5, 10, 6, 15, 4, 4, 5, 18, 4, 4, 2, 6, 1, 9 };
long startTime = System.currentTimeMillis();
System.out.println("startTime " + startTime);
Mergesort sorter = new Mergesort();
sorter.sort(test);
long stopTime = System.currentTimeMillis();
System.out.println("stopTime " + stopTime);
long elapsedTime = stopTime - startTime;
System.out.println("Mergesort " + elapsedTime);
if (!validate(test)) {
System.out.println("Should not happen");
}
printResult(test);
}
}





신고

'Java > Collection' 카테고리의 다른 글

Mergesort  (0) 2012.01.27
Quicksort  (0) 2012.01.27
LinkedList class  (0) 2012.01.19
ArrayList class  (0) 2012.01.19
Posted by jeonguk

Quicksort

Java/Collection 2012.01.27 13:59 |

Quicksort



public class Quicksort {
private int[] numbers;
private int number;
public void sort(int[] values) {
// check for empty or null array
if (values == null || values.length == 0) {
return;
}
this.numbers = values;
number = values.length;
quicksort(0, number -1);
}
private void quicksort(int low, int high) {
int i = low, j = high;
// Get the prvot element from the middle of the list
int pivot = numbers[low + (high - low)/2];
// Divide into two lists
while (i <= j) {
// If the current value from the left list is smaller then the pivot
// element then get the next element from the left list
while (numbers[i] < pivot) {
i++;
}
// If the current value from the right list is larger then the pivot
// element then get the next element from the right list
while (numbers[j] > pivot) {
j--;
}
// If we have found a values in the left list which is larger then
// the pivot element and if we have found a value in the right list
// which is smaller then the pivot element then we exchange th values.
// As we are done we can increase i and j
if (i <= j) {
exchange(i, j);
i++;
j--;
}
}
// Recursion
if (low < j) {
quicksort(low, j);
}
if (i < high) {
quicksort(i, high);
}
}
private void exchange(int i, int j) {
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
private static void printResult(int[] numbers) {
for (int i = 0; i < numbers.length; i++) {
System.out.print(" "+numbers[i]);
}
System.out.println();
}
private static boolean validate(int[] numbers) {
for (int i = 0; i < numbers.length - 1; i++) {
if (numbers[i] > numbers[i + 1]) {
return false;
}
}
return true;
}
public static void main(String[] args) {
Quicksort sorter = new Quicksort();
int[] test = { 5, 10, 6, 15, 4, 4, 5, 18, 4, 4, 2, 6, 1, 9 };
sorter.sort(test);
if (!validate(test)) {
System.out.println("Should not happen");
}
printResult(test);
}
}






 

신고

'Java > Collection' 카테고리의 다른 글

Mergesort  (0) 2012.01.27
Quicksort  (0) 2012.01.27
LinkedList class  (0) 2012.01.19
ArrayList class  (0) 2012.01.19
Posted by jeonguk

Binary Search

Java 2012.01.26 14:19 |

샘플 코드 >

public class BinarySearch {
	public static boolean contains(int[] a, int b) {
		if (a.length == 0) {
			return false;
		}
		int low = 0;
		int high = a.length-1;

		while(low <= high ) {
			int middle = (low+high) /2; 
			if (b> a[middle] ){
				low = middle +1;
			} else if (b< a[middle]){
				high = middle -1;
			} else { // The element has been found
				return true; 
			}
		}
		return false;
	}
}


jUnit 테스트 >

import org.junit.Test;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

public class BinarySearchTest {

	@Test
	public void testContains() {
		int[]a = {1, 2, 3, 4, 5, 7, 17,  19 };
//		assertTrue(BinarySearch.contains(a, 17));
		assertTrue(BinarySearch.contains(a, 1));
		assertTrue(BinarySearch.contains(a, 2));
		assertTrue(BinarySearch.contains(a, 3));
		assertTrue(BinarySearch.contains(a, 4));
		assertFalse(BinarySearch.contains(a, 10));
	}

}





 
신고

'Java' 카테고리의 다른 글

Java 1.7 New Features 코드 샘플  (0) 2012.02.09
정렬 알고리즘  (0) 2012.02.04
Binary Search  (3) 2012.01.26
Sequential Search  (0) 2012.01.26
java에서 손쉽게 JSON을 사용한다. JSON.simple example – Read and write JSON  (0) 2012.01.20
Java Garbage Collection  (0) 2012.01.19
Posted by jeonguk

Sequential Search

Java 2012.01.26 14:18 |

샘플 코드 >

public class SequentialSearch {
	public static boolean contains(int[] a, int b){
		for (int i : a) {
			if (i==b){
				return true;
			}
		}
		return false; 
	}
}

 

jUnit 테스트 >

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import org.junit.Test;

public class SequentialSearchTest {

	@Test
	public void testContains() {
		int[]a = {1, 2, 3, 4, 5, 19, 17, 7};
		assertTrue(SequentialSearch.contains(a, 17));
		assertTrue(SequentialSearch.contains(a, 1));
		assertTrue(SequentialSearch.contains(a, 2));
		assertTrue(SequentialSearch.contains(a, 3));
		assertTrue(SequentialSearch.contains(a, 4));
		assertFalse(SequentialSearch.contains(a, 10));
	}
 

신고

'Java' 카테고리의 다른 글

정렬 알고리즘  (0) 2012.02.04
Binary Search  (3) 2012.01.26
Sequential Search  (0) 2012.01.26
java에서 손쉽게 JSON을 사용한다. JSON.simple example – Read and write JSON  (0) 2012.01.20
Java Garbage Collection  (0) 2012.01.19
Difference between JDK1.4.2, JDK 1.5.0 and JDK1.6  (0) 2012.01.19
Posted by jeonguk

샘플1.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
 
public class App 
{	
    public static void main( String[] args )
    {
    	byte[] buffer = new byte[1024];
 
    	try{
 
    		FileOutputStream fos = new FileOutputStream("C:\\MyFile.zip");
    		ZipOutputStream zos = new ZipOutputStream(fos);
    		ZipEntry ze= new ZipEntry("spy.log");
    		zos.putNextEntry(ze);
    		FileInputStream in = new FileInputStream("C:\\spy.log");
 
    		int len;
    		while ((len = in.read(buffer)) > 0) {
    			zos.write(buffer, 0, len);
    		}
 
    		in.close();
    		zos.closeEntry();
 
    		//remember close it
    		zos.close();
 
    		System.out.println("Done");
 
    	}catch(IOException ex){
    	   ex.printStackTrace();
    	}
    }
}



샘플2. 특정 폴더에 있는 파일들을 zip으로 압축한다.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
 
public class AppZip
{
    List<String> fileList;
    private static final String OUTPUT_ZIP_FILE = "C:\\MyFile.zip";
    private static final String SOURCE_FOLDER = "C:\\testzip";
 
    AppZip(){
	fileList = new ArrayList<String>();
    }
 
    public static void main( String[] args )
    {
    	AppZip appZip = new AppZip();
    	appZip.generateFileList(new File(SOURCE_FOLDER));
    	appZip.zipIt(OUTPUT_ZIP_FILE);
    }
 
    /**
     * Zip it
     * @param zipFile output ZIP file location
     */
    public void zipIt(String zipFile){
 
     byte[] buffer = new byte[1024];
 
     try{
 
    	FileOutputStream fos = new FileOutputStream(zipFile);
    	ZipOutputStream zos = new ZipOutputStream(fos);
 
    	System.out.println("Output to Zip : " + zipFile);
 
    	for(String file : this.fileList){
 
    		System.out.println("File Added : " + file);
    		ZipEntry ze= new ZipEntry(file);
        	zos.putNextEntry(ze);
 
        	FileInputStream in = 
                       new FileInputStream(SOURCE_FOLDER + File.separator + file);
 
        	int len;
        	while ((len = in.read(buffer)) > 0) {
        		zos.write(buffer, 0, len);
        	}
 
        	in.close();
    	}
 
    	zos.closeEntry();
    	//remember close it
    	zos.close();
 
    	System.out.println("Done");
    }catch(IOException ex){
       ex.printStackTrace();   
    }
   }
 
    /**
     * Traverse a directory and get all files,
     * and add the file into fileList  
     * @param node file or directory
     */
    public void generateFileList(File node){
 
    	//add file only
	if(node.isFile()){
		fileList.add(generateZipEntry(node.getAbsoluteFile().toString()));
	}
 
	if(node.isDirectory()){
		String[] subNote = node.list();
		for(String filename : subNote){
			generateFileList(new File(node, filename));
		}
	}
 
    }
 
    /**
     * Format the file path for zip
     * @param file file path
     * @return Formatted file path
     */
    private String generateZipEntry(String file){
    	return file.substring(SOURCE_FOLDER.length()+1, file.length());
    }
}



Output:

Output to Zip : C:\MyFile.zip
File Added : pdf\Java-Interview.pdf
File Added : spy\log\spy.log
File Added : utf-encoded.txt
File Added : utf.txt
Done



신고

'Java > I/O' 카테고리의 다른 글

ZIP포멧으로 압축하기  (0) 2012.01.25
기존 파일에 콘텐츠 추가하기  (0) 2012.01.25
파일 쓰기 - BufferedWriter  (0) 2012.01.25
파일 쓰기 - FileOutputStream  (0) 2012.01.25
파일 읽기 - BufferedReader  (0) 2012.01.25
Create a File 파일생성  (0) 2012.01.25
Posted by jeonguk

1. 기존 파일의 콘텐츠를 새로운 컨텐츠로 전부 대체할때

    new FileWriter(file);



2. 기존 콘텐츠를 유지하면서 새로운 컨텐츠를 마지막에 추가할때

    new FileWriter(file,true);




Sample


javaio-appendfile.txt

내용 : ABC hello




import java.io.File;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
 
public class AppendToFileExample 
{
    public static void main( String[] args )
    {	
    	try{
    		String data = " This content will append to the end of the file";
 
    		File file =new File("javaio-appendfile.txt");
 
    		//if file doesnt exists, then create it
    		if(!file.exists()){
    			file.createNewFile();
    		}
 
    		//true = append file
    		FileWriter fileWritter = new FileWriter(file.getName(),true); //뒤에 덧붙이기
    	        BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
    	        bufferWritter.write(data);
    	        bufferWritter.close();
 
	        System.out.println("Done");
 
    	}catch(IOException e){
    		e.printStackTrace();
    	}
    }
}



결과 :  javaio-appendfile.txt 

ABC Hello This content will append to the end of the file

 
신고

'Java > I/O' 카테고리의 다른 글

ZIP포멧으로 압축하기  (0) 2012.01.25
기존 파일에 콘텐츠 추가하기  (0) 2012.01.25
파일 쓰기 - BufferedWriter  (0) 2012.01.25
파일 쓰기 - FileOutputStream  (0) 2012.01.25
파일 읽기 - BufferedReader  (0) 2012.01.25
Create a File 파일생성  (0) 2012.01.25
Posted by jeonguk

BufferedWriter

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
 
public class WriteToFileExample 
{
    public static void main( String[] args )
    {	
    	try{
 
    	    String content = "This is the content to write into file";
 
    	    File file =new File("filename.txt");
 
    	    //if file doesnt exists, then create it
    	    if(!file.exists()){
    		file.createNewFile();
    	    }
 
    	    FileWriter fw = new FileWriter(file.getName());
    	    BufferedWriter bw = new BufferedWriter(fw);
    	    bw.write(content);
    	    bw.close();
 
	    System.out.println("Done");
 
    	}catch(IOException e){
    		e.printStackTrace();
    	}
    
} 

신고

'Java > I/O' 카테고리의 다른 글

ZIP포멧으로 압축하기  (0) 2012.01.25
기존 파일에 콘텐츠 추가하기  (0) 2012.01.25
파일 쓰기 - BufferedWriter  (0) 2012.01.25
파일 쓰기 - FileOutputStream  (0) 2012.01.25
파일 읽기 - BufferedReader  (0) 2012.01.25
Create a File 파일생성  (0) 2012.01.25
Posted by jeonguk

FileOutputStream
 

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class WriteFileExample 
{
    public static void main( String[] args )
    {	
    	try{
    		String content = "This is the text content";
 
    		File file =new File("newfile.txt");
 
    		//if file doesnt exists, then create it
    		if(!file.exists()){
    		   file.createNewFile();
    		}
 
    		FileOutputStream fop=new FileOutputStream(file);
		//get the content in bytes
    		fop.write(content.getBytes());
		fop.flush();
	        fop.close();
 
                System.out.println("Done");
 
    	}catch(IOException e){
    		e.printStackTrace();
    	}
    
} 

신고

'Java > I/O' 카테고리의 다른 글

ZIP포멧으로 압축하기  (0) 2012.01.25
기존 파일에 콘텐츠 추가하기  (0) 2012.01.25
파일 쓰기 - BufferedWriter  (0) 2012.01.25
파일 쓰기 - FileOutputStream  (0) 2012.01.25
파일 읽기 - BufferedReader  (0) 2012.01.25
Create a File 파일생성  (0) 2012.01.25
Posted by jeonguk