[Java] 자료형

rara_kim·2022년 6월 12일
0

Java

목록 보기
2/39
post-thumbnail

자료형(Data Type)

자료형은 변수의 종류, 단위를 뜻하며 변수의 종류에 따라 데이터의 타입과 크기가 다르다.

🔢숫자(Number)

숫자 형태의 자료형

종류
정수int intNum = 10;
long longNum = 2147483648L;
실수float floatNum = 1.23f;
double doubleNum = 1.23;
2/8/16진수int numBase2 = 0b1100;
int numBase8 = 014;
int numBase16 = 0xC;

💡2/8/16진수의 형태로 출력시

System.out.println("0b" + Integer.toBinaryString(numBase2));
System.out.println("0" + Integer.toOctalString(numBase8));
System.out.println("0x" + Integer.toHexString(numBase16));

🧐부울(Boolean)

참과 거짓을 나타내는 자료형

boolean isMinus = true;
boolean isOk = false;

🔤문자(Character)

한 개의 문자 표현에 사용하는 자료형

char keyFirst = 'a';
char keyLast = 'z';

📝문자열(String)

문자들로 이루어진 집합

String s1 = "Hello World!";
String s2 = "012345";

💡문자열 메소드

equals, indexOf, replace, substring, toUpperCase

System.out.println(s1.equals(s2));
System.out.println(s1.indexof("!"));

String s3 = s1.replace("Hello", "Bye");

System.out.println(s2, substring(0,3));
System.out.println(s1.toUpperCase);

🖇StringBuffer

  • 문자열을 자주 추가하거나 변경할 때 사용하는 자료형
  • String으로도 문자열을 변경할 수는 있지만, 빈번하게 일어날 경우 객체가 여러번 생성되어 메모리 사용이 많아지므로 StringBuffer를 사용하는 것이 좋다.
StringBuffer sb1 = new StringBuffer("Hello");

💡StringBuffer 메소드

append, insert, substring

sb1.appned(" World");  
s1.insert(11, "!");    
s1.substring(0,5);     //결과 "Hello"

🗃배열(Array)

많은 수의 데이터를 담을 수 있는 자료형(엄밀히 말하면 자료구조)

int[] myArray1 = {1, 2, 3, 4, 5};
char[] myArray2 = {'a', 'b', 'c', 'd', 'e'};

System.out.println(myArray1[0])  //0번째 index의 값(1) 출력
System.out.println(myArray2[2])  //2번째 index의 값(c) 출력

String[] myArray3 = new String[3];
myArray3[0] = "Hello";
myArray3[1] = " ";
myArray3[2] = "World!";
System.out.println(myArray3[0] + myArray3[1] + myArray3[2]);

✔️리스트(List)

  • 배열과 같이 여러 데이터를 담을 수 있는 자료형
  • 추가로 여러가지 메소드를 제공
ArrayList l1 = new ArrayList();
l1.add(1);

💡List 메소드

add, get, size, remove, clear, sort, contains

l1.add(2);
l1.add("World");
l1.add(0, 1);     

System.out.println(l1.get(3));

System.out.println(l1.size());

System.out.println(l1.remove(0));                   //0번 index의 값을 제거
System.out.println(l1.remove(Integer.valueOf(1)));  //값이 '1'인 데이터 제거

l1.clear();

l2.sort(Comparator.naturalOrder());   //오름차순 정렬
l2.sort(Comparator.reverseOrder());   //내림차순 정렬

System.out.println(l2.contains(1)); 

📍맵(Map)

  • key, value 형태로 데이터를 저장하는 자료형
  • 데이터의 저장 순서가 보장되지 않는다.
  • key를 통해 해당 값에 접근한다.
HashMap<String, String> map = new HashMap<String, String>();
map.put("strawberry", "10000");

💡Map 메소드

put, get, size, remove, containsKey

map.put("kiwi", "9000");
map.put("fruit", apple");

System.out.println(map.get("kiwi"));     		//9000이라는 값이 출력
System.out.println(map.get("mango"));    		//null이 출력

System.out.println(map.size());

System.out.println(map.remove("kiwi"));         //키를 지우면 값도 같이 지워진다

System.out.println(map.containsKey("apple"));   //true를 출력

🔑제네릭스(Generics)

  • 자료형을 명시적으로 지정
  • 제한적일 수 있지만, 안정성을 높여주고 형변환을 줄여준다.
ArrayList<String> l1 = new ArrayList<String>();
HashMap<String, Integer> map1 = new HashMap<String, Integer>();

💡Generics 사용예시

ArrayList l2 = new ArrayList();                   //제네릭스 사용x
l2.add(1);
l2.add("Hello");

ArrayList<String> l3 = new ArrayList<String>();   //제네릭스 사용o 
l3.add(1);                 //에러
l3.add("World");

HashMap<String, Integer> map2 = new HashMap<>();
map.put(123, "id");        //에러
map.put("apple", 10000);   
profile
느리더라도 꾸준하게

0개의 댓글