목록JAVA (11)
꾸물꾸물 졔의 개발공부
HashSet 이란 ? 자바에서 HashSet 은 Set 인터페이스를 구현한 클래스이다. HashSet의 주요특징은 다음과 같다. 중복값 허용 되지 않음 입력순서가 일정하게 보장되지 않음. 즉, 정렬이 되지 않음 '순서'가 존재하지 않기 때문에 특정 값을 가져오는 index를 사용할 수 없다. null 값도 하나의 값으로 허용 값의 추가나 삭제가 많은 알고리즘을 구현할 때에는 HashSet 이 적합하지 않을 수도 있다. index 개념이 없고 중복값을 허용하지 않기 때문에, 특정 값을 추가할 때 HashSet내에서 해당값의 존재여부를 확인하고 추가해야하고, 삭제를 위해서도 모든 값을 탐색해야한다. HashSet 의 중복제거 객체의 hashCode() 메서드로 중복을 걸러낸다. 객체를 저장하기 전에 해당 ..
문제 : 입력받은 값에 따라, 다른 결과가 나오는 문제 1 을 입력받으면 , { ~~~ 실행 } , A 를 입력받으면 ,{ ~~~ 실행 } if( sc.next().equals("1") ){ //1 입력시 실행 할 코드 ; } else if ( sc.next().equals("A") ){ //A 입력시 실행할 코드 ; } ↑ 코드를 짯더니, 1을 입력했을 땐 if 문 안의 코드가 잘 돌아갔는데 A를 입력하면 아무런 실행이 나지 않았다. --> 처음 A를 입력하면, sc.next() 는 A를 읽은채, if의 조건문을 실행한다. --> A!=1 이므로, 다음 else-if의 조건구문을 확인하러 가고, sc.next()는 그 다음 입력값을 읽게된다. --> 그다음 입력값은 없으므로 null 을 읽은채로 확인하..
input.txt 파일에서, "," 를 제외한 각 글자들을 불러오려면 , split() 함수를 활용하면 된다 . split(String s ) 은 s 구분자를 기준으로, 문자열을 나누고 문자열 배열에 저장 . 예를 들어, input 의 첫줄 "안녕하세요.hi,hello" 에서 ------ split(",")------> 함수를 사용하면 , 콤마를 기준으로 문자열이 분리되어, 문자열 배열에 저장되어 진다 --> ["안녕하세요" , "hi", "hello"] + 또한, 입력받은 input 이 몇줄인지 몰라, 반복문을 얼만큼 돌아야 할지 모르겠다면 , hasNext() 함수를 활용하여, 다음으로 읽어들일 문장이 있을 때 까지만 실행하면된다 . if) input.txt파일이 3줄이라면, while(sc.hasN..
기존 Scanner는 (System.in)을 사용하면서, 키보드를 통해 입력을 받아온다 . 하지만 이와 같이 하나의 패키지 안에 , 자바클래스파일과 텍스트 파일이 있어, input 파일로부터 입력을 받아올경우 : String path= 클래스명.class.getResources("").getPath() + "텍스트파일명" ; // 어떤 클래스의 메모리에 있는 자원중, 클래스의 경로를 얻어온다 + 파일명 path 라는 문자열 변수에 저장하고, Scanner sc= new Scaner( new FileInputStream(path) ) ; --> 파일입력스트림으로 path 값을 받아온다. ++ 물론, 이에 대한 import 와 예외처리도 해줘야한다 import java.io.FileInputStream; t..
배열복사 Arrays.copyOf (원본배열, 복사할길이) ; Arrays.copyOfRange(원본배열, 시작인덱스, 마지막인덱스); ex) Arrays.copyofRance(원본배열, 0 , 3) ; 하면 0 1 2 인덱스가 복사됨
어떤 수가 나열되어졌을 때, 하나하나 일일이 코드를 작성하여서 오름차순 또는 내림차순으로 정렬하는 방법도 있지만, java내에 내장된 함수를 사용할 수 있다 . 그중 하나가 Collections.sort이다. 주의할 점은 !!!! collections.sort 함수는 일반 배열의 형태로 수들을 저장하면 실행이 되지 않아, 리스트의 형태로 수들을 저장해야 한다 . (ArrayList, LinkedList ...) 나는 그중에 ArrayList 를 사용하여서 하였다 . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 import java.util.*; class Main{ public static void main(String args[]) { Scanner sc=new Scann..
StringBuilder 는 문자열을 좀더 효율적으로 붙이는(?) 방법 이다 . 기본적으로 자바에서 String a="hello", String b="hi" 로 하고 a+b를 하면 새로운 객체가 생성되어 "hellohi" 가 되지만 굉장히 비효율적이고 성능이 떨어진다. 그래서 사용하는 것이 StringBuilder!!!!!! 여러가지 함수를 사용할 수 있지만, 대표적으로 문자열에 값을 더하는 . append() 함수를 가장 많이 사용한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 StringBuilder sb= new StringBuilder(); // StringBuilder 객체 생성 sb.append("abc"); // 값 붙이기 sb.i..