위키독스 점프 투 자바를 중요한 것, 내가 잘 몰랐던 것을 위주로 포스팅해보겠다.
03-4 문자열(String)
String a = "hello";
String b = new String("hello");
System.out.println(a.equals(b));
System.out.println(a==b); //false
다음 코드에서 a 와 b는 값이 같고 서로 다른 객체이다.
== 연산자는 두 개의 자료형이 '동일한' 객체인지 판별할 때 쓰는 연산자이기 때문에 false를 리턴한다.
String a = "Hello Java";
System.out.println(a.indexOf("Java")); //6
indexOf : 문자열에서 특정 문자가 시작되는 인덱스를 리턴
자바는 0부터 인덱스를 계산한다.
String a = "Hello Java";
System.out.println(a.replaceAll("Java","World"); //Hello World
replaceAll : 문자열 중 특정 문자를 다른 문자로 바꾸고 싶을 경우에 사용한다.
String a= "Hello Java";
System.out.println(a.toUpperCase()); // HELLO JAVA
toUpperCase : 문자열을 모두 대문자로 변경하고자 할 때 사용
03-5 StringBuffer
StringBuffer은 문자열을 추가하거나 변경할 때 주로 사용하는 자료형이다.
public class HelloWorldMain {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("hello");
sb.append(" ");
sb.append("jump to java");
System.out.println(sb.toString());
}
}
이 코드는 StringBuffer 객체를 한번 생성해서 메모리를 사용한다. StringBuffer은 일반 String 자료형보다 메모리 사용량이 많고 무거운 편이다.
public class HelloWorldMain {
public static void main(String[] args) {
String temp = "";
temp +="hello";
temp += " jump to java";
System.out.println(temp);
}
}
+ 연산이 있을 때마다 새로운 String형 객체가 만들어지는 코드이다.
public class HelloWorldMain {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("jump to java");
sb.insert(0,"hello "); // 0번째 위치에 hello 삽입
System.out.println(sb.toString()); //hello jump to java
System.out.println(sb.substring(0,4)); //hell
}
}
StringBuffer의 메소드
- append : 문자열을 추가한다.
- insert(index, "string") : index 인덱스에 "string"을 추가한다.
- substring(start, end) : start에서 end - 1 인덱스까지 리턴한다.
03-6 배열
배열을 선언하고 초기화하고, 출력하는 방법은 다음과 같다.
public class HelloWorldMain {
public static void main(String[] args) {
int[] odds = {1,3,5,7,9};
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
System.out.println(weeks[3]); // 4번째 원소 출력
for (int i = 0; i < weeks.length; i++) {
System.out.println(weeks[i]); //
}
}
}
Stringp[ weeks = new String[];
다음과 같은 코드는 길이값이 없으므로 오류가 발생한다.
03-7 리스트
자바에는 리스트 자료형도 있다.
import java.util.ArrayList;
public class HelloWorldMain {
public static void main(String[] args) {
ArrayList pitches = new ArrayList();
pitches.add("123");
pitches.add("125");
pitches.add("142");
System.out.println(pitches); // [123,125,142]
pitches.add(0, "000");
System.out.println(pitches); // [000, 123, 125, 142]
System.out.println(pitches.get(1)); // 123
System.out.println(pitches.size()); //4
System.out.println(pitches.contains("142")); //true
System.out.println(pitches.remove("125")); //true
System.out.println(pitches); // [000,123,142]
System.out.println(pitches.remove(0)); // 000
System.out.println(pitches); // [123,142]
}
}
리스트 자료형의 메소드들이다.
- add : 리스트 뒤에 요소를 삽입
- add(index,"string") : index 위치에 "string"을 삽입
- get(index) : index 위치의 요소를 리턴
- size() : 리스트 내의 요소 갯수를 리턴
- contains("string") : "string"이 있는지 여부를 리턴
+)
ArrayList<String> pitches = new ArrayList<String>();
이렇게 객체를 포함하는 자료형도 어던 객체를 포함하는지 명확하게 표현하도록 권고한다.
03-8 제네릭스
ArrayList<String> aList = new ArrayList<>();
ArrayList라는 자료형 타입 옆에 <String>을 붙인 다음과 같은 코드가 제네릭스이다.
: "ArrayList 안에 담을 수 있는 자료형은 String 타입 뿐이다." 라는 뜻이다.
즉, 명확한 타입 체크를 위해 사용한다.
import java.util.ArrayList;
public class HelloWorldMain {
public static void main(String[] args) {
ArrayList aList = new ArrayList(); //리스트 객체 aList 생성
aList.add("hello"); // Object 자료형으로 인식(모든 객체가 상속하고 있는 가장 기본적인 자료형)
aList.add("java");
String hello = (String) aList.get(0); //값을 가져오는 경우 Object자료형에서 String으로 형변환해주어야 한다.
String java = (String) aList.get(1);
}
}
03-9 맵(Map)
맵은 딕셔너리와 유사한 인터페이스이다. 검색하는 key만으로 value를 얻어낸다는 점에서 특징이 있다.
자바의 Map 중에서 가장 간단한 HashMap을 보자
import java.util.ArrayList;
import java.util.HashMap;
public class HelloWorldMain {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("people", "사람");
map.put("baseball", "야구");
System.out.println(map.get("people")); // 사람
System.out.println(map.containsKey("people")); // true
System.out.println(map.remove("people")); //사람
System.out.println(map.size()); //1
}
}
- put("key", "value") : HashMap에 해당 key와 value를 묶어서 저장한다.
- get("key") : 해당 key에 대응하는 value를 반환한다.
- containsKey("key") : HashMap이 해당 key를 포함하는 지 여부를 조사한다.
- remove("key") : 해당 key와 그와 대응하는 value를 출력하고 삭제한다.
- size() : key와 value쌍의 개수를 반환한다.
'Langauge > Java' 카테고리의 다른 글
Java의 정석 Chapter2. 변수 (0) | 2022.03.07 |
---|---|
Java의 정석 Chapter1. 자바를 시작하기 전에 (0) | 2022.03.07 |
점프 투 자바 요약 #객체지향프로그래밍 (0) | 2021.02.25 |
점프 투 자바 요약 #제어문 (0) | 2021.02.23 |
Java1 생활코딩 강의 Write-up (0) | 2021.01.29 |