📌 Study
🔸 2022-09-29
[프로그래밍 언어 활용]
1. 기본 문법 활용하기
HashSet |
중복된 원소를 허용하지 않는 집합(Set)의 성질 가진 클래스, 순서가 중요하지 않음 |
ArrayList |
크기가 가변적으로 변하는 선형리스트의 성질을 가진 클래스, 순서가 중요함(인덱스 통해 접근가능) |
LinkedList |
데이터를 저장하는 노드가 이전 노드와 다음 노드의 상태를 알고 있는 링크드 리스트 자료구조를 구현한 클래스 |
HashMap |
키와 값으로 구성된 객체를 저장하는 구조로 되어 있는 자료 구조를 구현한 클래스 |
- HashSet 선언
Set 변수명 = new HashSet();
HashSet 변수명 = new HashSet();
- HashSet 메서드
add(값)
: 값을 추가하는 메서드, 중복된 값이 들어오면 추가되지 않음
remove(값)
: 값을 제거하는 메서드
size()
: HashSet에 들어있는 원소의 개수를 얻는 메서드
public static void main (String[] args) {
Set h = new HashSet();
h.add(2);
System.out.println(h); // [2]
h.add(1);
System.out.println(h); // [1, 2]
h.add(1);
System.out.println(h); // [1, 2]
h.remove(1);
System.out.println(h); // [2]
System.out.println(h.size()); // 1
}
- ArrayList 선언
List 변수명 = new ArrayList();
- `ArrayList 변수명 = new ArrayList();``
- ArrayList 메서드
add(값)
: 값을 추가하는 메서드
add(인덱스, 값)
: 해당 인덱스(번지)에 값을 추가하는 메서드
remove(인덱스)
: 해당 인덱스(번지)에 값을 제거하는 메서드
오버로딩
: 함수 이름 동일, 파라미터 다름(같은 레벨)
오버라이딩
: 함수 이름 동일, 파라미터 동일(부모 - 자식 간)
public static void main (String[] args) {
List a = new ArrayList();
a.add(2);
System.out.println(a); // [2]
a.add(1);
System.out.println(a); // [2, 1]
a.add(1);
System.out.println(a); // [2, 1, 1]
a.add(1, 3);
System.out.println(a); // [2, 3, 1, 1]
a.remove(2);
System.out.println(a); // [2, 3, 1]
System.out.println(a.get(2)); // 1
System.out.println(a.size()); // 3
- HashMap 선언
Map 변수명 = new HashMap();
HashMap 변수명 = new HashMap();
- HashMap 메서드
put(키, 값)
: 해당 키에 해당하는 값을 추가하는 메서드
remove(키)
: 해당 키에 해당하는 값을 제거하는 메서드
get(키)
: 해당 키에 해당하는 값을 얻는 메서드
size()
: HashMap에 들어있는 원소의 개수를 얻는 메서드
public static void main (String[] args) {
Map h = new HashMap();
h.put(1, "A");
System.out.println(h); // {1=A}
h.put(1, "C");
System.out.println(h); // {1=C}
h.put(2, "D");
System.out.println(h); // {1=C, 2=D}
h.remove(1);
System.out.println(h); // {2=D}
System.out.println(h.get(2)); // D
System.out.println(h.size()); // 1
세트형 |
중복된 원소를 허용하지 않는 집합의 성질을 가지고 있는 자료 구조 |
리스트형 |
크기가 가변적으로 변하는 선형리스트의 성질을 가지고 있는 자료 구조 |
튜플형 |
초기에 선언된 값에서 값을 생성, 삭제, 수정이 불가능한 형태의 자료 구조 |
딕셔너리형 |
키와 값으로 구성된 객체를 저장하는 구조로 되어 있는 자료 구조 |
- Set 선언
세트명 set [요소1, 요소2, ...]
세트명 = {요소1, 요소2, ...}
- Set 메서드
add(값)
: 값을 1개 추가하는 메서드
update([값1, 값2, ...])
: 여러 개의 값을 한꺼번에 추가하는 메서드
remove(값)
: 특정 값을 제거하는 메서드
s = {1, 5, 7}
s.add(3)
print(s) // {1, 3, 5, 7}
a.add(5)
print(s) // {1, 3, 5, 7}
s.update([1, 2, 3, 4])
print(s) // {1, 2, 3, 4, 5, 7}
s.remove(1)
print(s) // {2, 3, 4, 5, 7}
a = {'일본', '중국', '한국'}
a.add('베트남') // {'일본', '중국', '한국', '베트남'}
a.add('중국') // {'일본', '중국', '한국', '베트남'}
a.remove('일본') // {'중국', '한국', '베트남'}
a.update({'홍콩', '한국', '태국'}) // {'중국', '한국', '베트남', '홍콩', '태국'}
print(s) // {'중국', '한국', '베트남', '홍콩', '태국'}
- List 메서드
append(값)
: 리스트 마지막 요소 뒤에 값을 추가하는 메서드
insert(인덱스, 값)
: 리스트의 인덱스 위치에 값을 삽입하는 메서드
remove(값)
: 리스트에서 해당하는 값을 제거하는 메서드, 해당하는 값이 여러 개 있을 경우 가장 앞에 있는 값을 제거
첫 번째 요소 |
두 번째 요소 |
... |
뒤에서 두 번째 요소 |
마지막 요소 |
0 |
1 |
... |
(n-2) |
(n-1) |
-n |
-(n-1) |
... |
-2 |
-1 |
a = [4, 2, 7, 3, 5]
print(a[1]) // 2
print(a[-3]) // 7
- 슬라이싱
[시작 인덱스 : 종료 인덱스 : 스텝]
시작 인덱스
: 슬라이싱을 시작하는 인덱스, 생략할 경우 처음부터 슬라이싱
종료 인덱스
: 슬라이싱을 종료하는 인덱스, 종료 인덱스에 있는 인덱스 전까지 슬라이싱, 생략할 경우 마지막까지 슬라이싱
스텝
: 몇 개씩 끊어서 슬라이싱 할 지 결정하는 값, 생략할 경우 1이 기본값
a = [4, 2, 7, 3, 5]
print(a[0:4:2]) // [4, 7]
l = [3, 5, 7]
l.append(3)
print(l) // [3, 5, 7, 3]
l.insert(2, 4)
print(l) // [3, 5, 4, 7, 3]
l.remove(3)
print(l) // [5, 4, 7, 3]
print(l[:2]) // [5, 4]
string = 'Hello World'
m = string[0:3] + string[-3:]
print(m) // Hel + rld = Helrld
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[:7:2] // [0, 20, 40, 60]
|
List |
Tuple |
CRUD |
생성, 삭제, 수정 가능 |
생성, 삭제, 수정 불가능 |
표기법 |
[ , ] |
( , ) |
- 딕셔너리 선언
딕셔너리명 = {키1 : 값1, 키2 : 값2, ...}
요소 추가 |
딕셔너리명[키] = 값 |
요소 삭제 |
del 딕셔너리명[키] |
d = { 'A' : 5, 'C' : 4}
print(d)
d['K'] = 7
print(d) // d = { 'A' : 5, 'C' : 4, 'K' : 7}
del d['C']
print(d) // d = { 'A' : 5, 'K' : 7}
d['K'] = 6
print(d) // d = { 'A' : 5, 'K' : 6}
- 식별자 개념
- 변수, 상수, 함수 등 서로 구분하기 위해서 사용되는 이름
- 식별자 명명 규칙
- 사용 가능 문자 : 영문 대문자/소문자, 숫자, 밑줄('_') 사용이 가능 (
a
, A
, a1
, _
, _hello
)
- 변수 사용 규칙 : 첫 자리에는 숫자를 사용할 수 없음, 변수 이름의 중간에는 공백 사용 불가 (
_1
, a1
, a100
, my_student
)
- 변수 의미 부여 : 데이터 값의 의미나 역할을 표현, 이미 사용되고 있는 예약어의 경우에는 변수 사용 불가 (
age
, student
, For
, IF
)
카멜 표기법 |
식별자 표기 시 여러 단어가 이어지면 첫 단어 시작만 소문자로 표시, 각 단어의 첫 글자는 대문자로 표기법 |
파스칼 표기법 |
식별자 표기 시 여러 단어가 이어지면 각 단어의 첫 글자는 대문자로 표기법 |
스네이크 표기법 |
식별자 표기 시 여러 단어가 이어지면 단어 사이에 언더바를 넣는 표기법 |
헝가리안 표기법 |
식별자 표기 시 두어에 자료형을 붙이는 표기법 |