Java - Scanner vs. BufferedReader
2022. 10. 3. 18:12
Java
java에서 입력을 받는 방법에는 대표적으로 두가지가 있다. Scanner 객체를 생성 Scanner in = new Scanner(System.in); //scanner 객체 생성 byte a = in.nextByte(); // byte 형 입력 및 리턴 short b = in.nextShort(); // short 형 입력 및 리턴 int c = in.nextInt(); // int 형 입력 및 리턴 long d = in.nextLong(); // long 형 입력 및 리턴 float e = in.nextFloat(); // float 형 입력 및 리턴 double f = in.nextDouble(); // double 형 입력 및 리턴 boolean g = in.nextBoolean(); // bo..
Java- StringBuilder의 메소드
2022. 9. 26. 08:18
Java
연속적인 String의 덧셈에 사용 String끼리 더해줄 때 덧셈 연산이 많아진다면 메모리 할당과 해제를 발생시킴 Why? String 객체는 한 번 생성되면 내용을 바꿀 수 없으므로 하나의 문자열을 다른 문자열과 연결하면 새 문자열이 생성되고, 이전 문자열은 가비지 컬렉터로 들어간다. 이때 문자열의 갯수가 많아질수록 내부적으로 많은 작업이 발생하여 메모리를 많이 차지함. StringBuilder는 String과 다르게 변경 가능한 문자열을 만들어줌 생성자를 통해 생성 append()를 통해 String 추가 가능 StringBuilder result = new StringBuilder(); //생성 result.append("I'm ").append("so hungry"); //String에 Stri..
Java - split()/join() 배열<->문자열 변환
2022. 9. 23. 10:11
Java
split(String regex) 구분자를 기준으로 배열 형식으로 문자열을 잘라서 리턴 //공백을 기준으로 문자열을 분리 String str = "a b c d e" String[] ArraysStr = str.split(" "); //여러개의 구분자를 두어 분리 String str = "a,b c-d#e" String[] ArraysStr = str.split(",=#"); //split 이후에 [index]를 사용하면 해당하는 순서의 값만 가져올 수 있음 String str = "a b c d e" String[] ArraysStr = str.split(" ")[1]; //b split(String regex,int limit) 구분자를 기준으로 배열 형식으로 문자열을 limit수만큼 자름 Stri..
Java - 많이 쓰는 메소드 정리1 (배열 복사)
2022. 9. 23. 09:58
Java
System.arraycopy() 배열 복붙 메서드 붙여넣을 함수에 바로 넣을 수 있음 System.arraycopy(arr,0,result,0,arr.length) //->arr의 0번 인덱스부터 arr.length개 만큼의 요소를 result의 0번 인덱스부터 붙여넣어라 Array.copyOfRange(arr,from,to) 붙여넣을 함수 따로 정해주지 않음 Result = Arrays.copyOfRange(arr,4,8) //-> arr배열의 4번 인덱스부터 8번 인덱스 전의 요소까지 복사되어 Result에 붙여넣음
Java - 배열 - > ArrayList변환하기
2022. 9. 23. 01:16
Java
Arrays.asList() 일반 배열을 ArrayList 구조로 바꾸는 메소드 List list = Arrays.asList(arr); 이 방식을 사용하면 원본 배열의 주솟값을 가져옴 따라서 수정하면 원본의 데이터도 바뀌게 된다. List자료구조는 set(),get(),contains()메소드를 가지고 있기에 이 메서드들은 사용 가능하지만 원소를 추가,삭제하는 메서드는 가지고 있지 않다. 따라서 새로운 원소를 추가하거나 삭제할 수 없다.(배열의 길이를 바꿀 수 없다.) list.add("hi") //불가능 List.set(1,"hi") //가능. 2번째 인덱스 원소를 "hi" 로 수정 Array.asList()는 배열의 내용을 수정할 때 List로 바꿔 편리하게 사용하기 위함 new ArrayList(..
Java - 컬렉션 프레임워크
2022. 9. 19. 23:10
Java
주요내용 List인터페이스 Iterator Set인터페이스 Map인터페이스 hashing 컬렉션 문제풀이 컬렉션 여러 객체(데이터)를 모아놓은 것을 의미 컬렉션 프레임워크 컬렉션(다수의 객체)을 다루기 위한 표준화된 프로그래밍 방식 다양한 클래스 제공 컬렉션 프레임워크의 핵심 인터페이스 인터페이스 특징 List 순서가 있는 데이터의 중복 혀용 Set 순서x,중복 허용x Map 키와 값의 쌍으로 이루어진 데이터의 집합 순서x,중복(키x,값o) List인터페이스 Arraylist 저장공간으로 배열을 사용 생성하기 위해서는 저장할 객체 타입을 매개변수, 즉 제네릭으로 표기하고 기본 생성자를 호출 ArrayList 객체명 = new ArrayList(초기 저장 용량); ArrayList container1 = ..
Java - 람다와 메서드 참조
2022. 9. 18. 00:49
Java
주요내용✔ 람다식 메서드 참조 람다식 함수(메서드)를 간략한 식으로 표현하는 방법 JDK 1.8 함수형 프로그래밍에서 이 기법을 도입하였다. 람다식의 규칙 1. 메서드의 이름과 반환타입을 제거하고 "->"을 블록{}앞에 추가 int max(int a, int b){ return a>b ? a:b; } //람다식 변형 (int a,int b) -> return a>b ? a:b; 2. 반환값이 있는 경우, 식이나 값만 적고 return문 생략 가능(끝에 ; 안붙임) (int a,int b) -> return a>b ? a:b; //람다식 변환 (int a,int b) -> a>b ? a:b 3. 매개변수의 타입이 추론 가능하면 생략가능(대부분의 경우 생략가능) (int a,int b) -> a>b ? a:..
Java-삼항연산자
2022. 9. 17. 23:47
Java
if문 사용시 코드라인이 길어지는 경우가 생긴다 이때 삼항연산자를 사용하면 간결하게 코드를 짤 수 있다. 삼항연산자 - (조건문) : ? 참 : 거짓 위 예제의 경우 괄호 안의 조건문이 참일 때 int a에 1이 , 거짓일 때 2가 담기게 된다. 그러나 삼항 연산자를 사용하였다고 컴파일 속도가 빨라지는 것은 아니며, 중복해서 여러번 사용할 경우 가독성이 떨어질 수 있으므로 주의해야 한다.
Java - 다형성
2022. 9. 17. 17:34
Java
다형성에 대한 개념들을 정리해보려고 한다. 주요학습내용 다형성 참조변수의 형변환 instanceof연산자 다형성 다형성(polymorphism) 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 class Tv { boolean power; int channel; void power() {...} void channelUp() {...} void channelDown(){...} } class SmartTv expends Tv { String text; soid caption() {...} } SmartTv s = new SmartTv(); //ok Tv t = new SmartTv(); //조상 타입변수로 자손 타입 객체를 다루고 있음, 타입 불일치 ok SmartTv p = new Tv(); //자..