알고리즘을 위한 자바

포모·2020년 11월 24일
2

JAVA의 기본

목록 보기
1/9

항상 파이썬을 사용해 알고리즘을 공부했지만, 이번 코딩 시험을 보면서 JAVA를 써야했다.
그래서 나처럼 급하게 JAVA를 사용하게 될 사람들을 위한 '참고하면 좋을 몇가지 팁'을 모아보았다.


Swap 함수

public static void swap(final int[] arr, final int pos1, final int pos2){
    final int temp = arr[pos1];
    arr[pos1] = arr[pos2];
    arr[pos2] = temp;
}

가장 빠른 입력 받기 & 문자열 자르기

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class practice {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));	// 사용자로부터 한 줄 입력을 받는다.

		// 어떤 기준으로 문자열을 자르고 싶은 경우 String Tokenizer를 사용한다. 생성자로 자르고 싶은 string을 넣는다. 
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");	// 기본 생성자는 공백을 기준으로 자른다. <"안녕 하세요" 입력>
//		System.out.println(st.nextToken());		// 안녕
//		System.out.println(st.nextToken());		// 하세요	
//		System.out.println(st.nextToken());		// error


		// 반복문으로 출력하기 
		int n = st.countTokens();		// 처음에 st의 개수를 입력 받음.
		for (int i=0;i<n;i++) {
//		while(st.countTokens()!=0) {	// counttokens을 여러번 하는거보단 st의 개수를 처음부터 입력받는 것이 나을 것 같다.
			System.out.println(st.nextToken());
		}
	}
}

ArrayList

import java.util.ArrayList;
import java.util.List;

public class pr {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List idolList = new ArrayList();


		idolList.add("첫번째 요소");
		idolList.add("두번째 요소");
		idolList.add(new String("세번째 요소"));
		idolList.add(1, "인덱스 1에 삽입 요소");


		System.out.println(idolList.get(0).toString());	// 첫번째 요소
		System.out.println(idolList.get(1).toString());	// 인덱스 1에 삽입 요소
		System.out.println(idolList.get(2).toString());	// 두번째 요소


	}

}

  • ArrayList 정렬

	List idolList = new ArrayList();


	idolList.add("1");
	idolList.add("2");
	idolList.add(new String("3"));
	idolList.add(1, "1.5");

	Collections.sort(idolList);

	for (Object obj : idolList) {
		System.out.println(obj.toString());		// 1 - 1.5 - 2 - 3
	}

  • ArrayList의 Iterator를 통한 전체 조회

	Iterator iterator = list.iterator();
	while (iterator.hasNext()) {
		System.out.println((String)iterator.next());
	}
	/* 
	- 출력 결과 -
	첫번째 요소
	인덱스 1에 삽입 요소
	두번째 요소
	세번째 요소
	*/

  • ArrayList의 for-loop를 통한 전체 조회

    		for(Object obj : list) {
    			System.out.println((String)obj);
    		}

  • 인덱스 찾기

    		int idx = list.indexOf("두번째 요소");
    		System.out.println(list.get(idx).toString());

  • 요소가 존재 하는 지 확인

    		System.out.println(list.contains("두번째 요소"));	// true
    		System.out.println(list.contains("네번째 요소"));	// false

Hashmap

HashMap<String, Integer> map = new HashMap();

map.put("아이유", 25);
map.put("아이린", 27);
map.put("설현", 40);

System.out.println(map.get("아이유"));	// 35
System.out.println(map.values()); 		// [40, 25, 27]

  • Hashmap 하나씩 출력하기

    		Set<Entry<String, Integer>> set = map.entrySet();
    		Iterator<Entry<String, Integer>> itr = set.iterator();
    
    		while (itr.hasNext()) {
    			Entry<String, Integer> e = (Entry<String, Integer>)itr.next();
    			System.out.println("이름 : "+e.getKey()+", 나이 : "+e.getValue());
    		}

Array

  • Array 초기화

    		boolean [] bitlist;
    		bitlist = new boolean[10];
    
    		Arrays.fill(bitlist, false);
    
    		for (boolean obj : bitlist) {
    			System.out.println(obj);	// false
    		}
    		System.out.println(bitlist.length);

  • Array 정렬

    		int[] arr = {2,3,1,378,19,25};
    		Arrays.sort(arr);
    
    		System.out.println(Arrays.toString(arr));

  • 2차원 배열

    		int[][] intArray = new int[5][3];
    
    		System.out.println(intArray.length);	// 행의 개수
    		System.out.println(intArray[0].length); // 열의 개수
    
    		//다차원 배열의 할당 선언
    		boolean [] [] booleanArrays = { {true, true}, {false, false, false}, ... };

Stack

Stack<String> s = new  Stack<String>();

s.push("A");
s.push("B");
s.push("C");
s.push("D");

System.out.println(s.peek());		// D

while(!s.empty()) {
	System.out.println(s.pop());	// D - C - B - A
}

Queue

Queue<String> q = new LinkedList<String>();

q.offer("A");
q.offer("B");
q.offer("c");
q.offer("D");

System.out.println(q.peek());	// A 
System.out.println(q.remove());	// A (queue에서 사라짐)


while (!q.isEmpty()) {
	System.out.println(q.poll());	// B - C - D
}

Stack과 Queue

image


문자열 요소 접근하기

String str = "일이삼사오";
System.out.println(str.charAt(3));

문자열 비교

String s1 = "Joos";
String s2 = "Joos";
String s3 = new String ("Joos");
String s4 = "Juilet"

System.out.println(s1.equals(s2)); //true
System.out.println(s1.equals(s3)); //true
System.out.println(s1.equals(s4)); //false

문자열 정수로 바꾸기

Integer.parseInt("23")	// Valueof 보다 빠르다.

0개의 댓글