Java 35

Java StringBuilder 사용하는 이유와 사용법

String 타입의 문자열에 새로운 값을 추가하고 싶으면 String str = "고양이"; str+="귀여워"; System.out.println(str); >>고양이귀여워 이런식으로 문자열에 바로 '+'를 통해 원하는 바를 얻을 수 있는데 우리는 왜 StringBuilder 클래스를 사용할까? 일단 StringBuilder는 문자열을 버퍼에 담아 그 안에서 추가 수정 삭제 작업을 할 수 있도록 도와주는 클래스이다. 이는 String 문자열의 존재를 유지한체 그 문자열을 수정해주는 반면 '+' 를 통해 String 타입에 추가를 해주는 건 기존의 객체를 수정하는 게 아닌, 새로운 객체를 생성하는 거여서 메모리 할당과 해제를 발생시켜 프래그램의 성능을 저하시키게 된다. 그렇기에 StringBuilder ..

Java/Java 2023.01.21

Java 객체지향 프로그래밍 static (class 변수, instance변수)

우리는 객체를 생성할 클래스 내의 필드에 변수들, 그리고 메서드를 지정해 줄 수 있는데 그 변수를 어떤식으로 활용하게 만들지를 static이라는 키워드를 통해 정할 수 있습니다. 그렇다면 static은 어떤 역할을 하는 키워드일까요? 먼저 static은 클래스의 멤버(필드,메서드,이너 클래스)에 사용하는 키워드입니다. 필드에는 클래스의 속성을 나타내는 변수들을 지정하는데 static을 붙이지 않은 변수인 경우 instance 변수라고 부르고, 그 변수를 사용하기 위해서는 객체를 생성해서 참조변수를 통해 이용해야 합니다(참조변수 이름. 필드변수이름). 반면에 static을 붙인 변수 , 즉 class 변수는 객체를 생성하지 않고 바로 (클래스의 이름.필드변수이름)를 통해 이용할 수 있습니다. # class..

Java/Java 2023.01.15

Java 문자열 나누는 방법, 문자열 자르기 ( substring(), split())

substring() public class CordJgSubString { public static void main(String[] args) { String str = "ABCDEFG"; String result = str.substring(3); System.out.println(result); //출력 DEFG result = str.substring(3,6); System.out.println(result); //출력 DEF } } substring 메서드는 두 가지 활용법이 있다. 첫 번째는 substring(int index)를 이용해서 index 이후의 문자열만 자르는 것이고 두 번째는 substring(int index, int index)를 이용해 첫 번째 index

Java/Java 2023.01.15

Java 컬렉션 프레임워크 Map(HashMap) #로그인 코드 만들기

컬렉션 프레임워크에 속하는 Map 인터페이스는 무엇일까요? Map 인터페이스는 List, Set과 다르게 {key와 value} 쌍으로 데이터를 저장하는 컬렉션을 구현하는 데에 사용됩니다. 키와 값으로 구성된 객체는 Entry 객체라고 하며 Entry 객체를 활용하여 또 다른 메서드를 사용할 수도 있습니다. Map에서 키는 List에서 index 역할과 같이 주로 식별하는 역할을 하며 이러한 특징 때문에 중복 저장될 수 없고, 반면에 값은 중복 저장이 가능합니다. List의 (int index, object o )= Map (Key, value) 라고 생각하면 이해하기 쉬울 것 같네요 Map 인터페이스는 HashMap, HashTable, SortedMap, TreeMap 등의 클래스에서 구현되며 키를 ..

Java/Java 2023.01.14

Java 컬렉션 프레임워크_ Set(TreeSet)

Set에서 HashSet과 다르게 사용되는 클래스 TreeSet은 어떤 특징을 가지고 있을까요? TreeSet은 HashSet과 다르게 객체가 들어오게 되면 그 객체들을 자동적으로 오름차순으로 정렬을 합니다. 따라서 List처럼 따로 인덱스를 지정하지 않음에도 특정한 부분의 값들을 따로 가져올 수도 있고 가장 좌측의 값, 가장 큰 값, 어떠한 객체의 오른쪽에 있는 값등을 가져올 수 있습니다. public class CordJgTreeSet { public static void main(String[] args) { TreeSet treeSet = new TreeSet(); treeSet.add(1); treeSet.add(10); treeSet.add(5); treeSet.add(17); treeSet...

Java/Java 2023.01.14

Java 컬렉션 프레임워크 _ Set(HashSet)

Collection에서 집합의 특성을 가지고 있는 Set은 무엇일까요? Set은 수학에서 집합이라는 의미를 뜻합니다. 우리들이 수학에서 집합 단원을 배울 때 각 집합마다 각 요소들이 순차적으로 들어가는 게 아닌 마치 주머니에 있는 것 같은 모양을 많이 봤습니다. 여기에서 Set은 Collection 인터페이스의 상속을 받는 List와 차이가 나타납니다. List는 주로 순차적인 배열적인 특징을 가지고 있었다면 Set은 무분별한 공간에 저장되는 요소들을 이용하는 특징을 가집니다. 따라서, 각 인덱스마다 정보가 저장되어 같은 값이 저장되더라도 구분되던 List와 다르게 Set은 중복저장을 허용하지 않으며 저장순서를 저장하지 않습니다. 이는, 위 그림과 같이 수학적인 집합으로 생각하면 어찌보면 너무나 당연한 ..

Java/Java 2023.01.14

Java 컬렉션 프레임워크 Iterator

Iterator 란 무엇일까요? Iterator란 자바의 컬렉션(Collection)에 저장되어 있는 요소들을 순회하는 인터페이스입니다. 즉, Collection을 상속받는 List와 Set 인터페이스에서도 사용가능하다는 얘기입니다. Iterator 에는 아래와 같이 총 세 가지 메서드가 있습니다. 다음 요소가 있는지 판단하는 boolean 타입의 hasNext() 다음 요소를 가져오는 next(), 가져온 요소를 삭제하는 remove() next() 메서드와 remove()는 단독으로 사용할 수 없으며 꼭 hasNext() -> next() -> remove() 단계로 사용해야 사용할 수 있습니다. ArrayList list = new ArrayList(); for (int i = 1; i list 요..

Java/Java 2023.01.14

Java 컬렉션 프레임워크 LinkedList vs ArrayList

ArrayList와 LinkedList 의 차이는 무엇일까요? ArrayList는 List안에 갹 엘리먼트들이 순차적으로 저장되어져 있는 구조입니다. 따라서, ArrayList를 읽는다는 것은 붙어 있는 것들을 순차적으로 읽는 것이기에 굉장히 빠르게 읽으 수 있습니다. 반대로 LinkedList는 각 엘리먼트들이 순차적으로 저장되어져 있는 것이 아닌 상태에서 각 각의 엘리먼트들을 연결해서 저장되어져 있는 구조입니다. 따라서, LinkedList를 읽기 위해서는 각 각 연결되어져 있는 노드들을 읽어야하는 과정이 필요하기에 ArrayList에 비해서 읽는 속도가 느릴 수밖에 없습니다. LinkedList linkList = new LinkedList(10); -> 오류 ArrayList arrayList =..

Java 2023.01.14

Java 컬렉션 프레임워크_List_ArrayList (Collection framework)

컬렉션 프레임워크 뭘까요? 컬레션 프레임워크는 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다. 이러한 컬렉션 프레임 워크에는 List와 Set 인터페이스를 상속하는 Collection 인터페이스와 (key,value)의 값을 가지는 Map 인터페이스가 존재하는데 이 중 먼저 Collection의 상속을 받는 List에 대해서 알아보겠습니다. Collection 은 위에서 말한 것처럼 List와 Set을 상속하는 인터페이스인데요 순서가 있거나, 집합적인 저장공간을 나타내는 특징이 있으며 이 각각의 특징은 나뉘어 List -> 순서가 있는 저장 공간 Set -> 집합적인 저장 공간 으로 나뉘게 됩니다. List는 데이터의 순서가 유지가 되며, 중복 저장이..

Java/Java 2023.01.14