용어/Differences by language
[Python/JAVA/JS] 자바/자바스크립트의 배열과 파이썬의 리스트, 문자열 관계 이해하기
줌인.
2024. 6. 26. 11:32
[공통점]
공통점 | |
1️⃣ 순차적 데이터 저장 | 모든 언어에서 배열과 리스트는 데이터를 순서대로 저장 |
2️⃣ 인덱스 접근 | 각 데이터는 0부터 시작하는 인덱스를 사용하여 접근할 수 있음 |
3️⃣ 다양한 기능 | 데이터 추가, 삭제, 삽입, 검색, 정렬 등 다양한 작업을 수행 |
[차이점]
자바 배열 | 자바스크립트 배열 | 파이썬 리스트 | |
데이터 타입 | 동일한 타입 허용 | 다양한 타입 허용 | 다양한 타입 허용 |
크기 변경 | 불가능(고정) | 가능(동적 크기) | 가능(동적 크기) |
메모리 할당 | 컴파일 시점(정적) | 런타임 시점 (동적) | 런타임 시점 (동적) |
선언방식 | int [] arr = new int[5]; | let arr = [1 , 2, 3]; | arr = [1, 2, 3] |
내장 함수 | 제한적(arrays 클래스) | 다양함(push, pop, shift, splice, sort etc..) |
다양함 (append, pop, insert, remove, sort etc..) |
- 자바 배열은 성능이 중요한 경우에 적합하며, 자바스크립트 배열과 파이썬 리스트는 유연성과 편의성이 중요한 경우에
적합
▶ 문자열 비교
https://zoooom-in.tistory.com/135
[Python/JAVA] 문자열 비교
1️⃣ 문자열의 길이 구하기- a = "hello"PythonJavalen(string) : len() 함수를 사용string.length() : String 클래스의 length() 메서드 사용#문자열의 길이 a = "hello"print(len(a))String a = "hello";System.out.println(a.length());
zoooom-in.tistory.com
자바, 자바스크립트, 파이썬 모두에서 문자열(String)은 불변 객체
따라서 문자열 자체를 직접 변경하는 것은 불가능하며,
변경된 문자열을 얻기 위해서는 새로운 문자열을 생성
[문자열 비교]
자바(String) | 자바스크립트(String) | 파이썬(str) | |
시퀀스 자료형 여부 | X(불변 객체) | O(유사 배열 객체) | O |
문자열 인덱스 접근 | 불가능 ⇒ charAt() 사용 |
가능 | 가능 |
문자 변경 | 불가능(새로운 문자열 생성) | 가능 | 불가능 (새로운 문자열 생성) |
주요 메서드 | charAt(), length(), subString() | charAt(), length(), split() | [index], len(), [start:end], split() |
※ 파이썬/자바스크립트: 문자열은 시퀀스 자료형으로 간주되어 인덱스 접근 및 다양한 조작 가능
※ 자바: 문자열은 불변 객체로 취급되어 인덱스 접근 불가능 (대신 charAt() 메서드 등을 사용)
[자바 예시]
// 자바
String s = "hello";
char c = s.charAt(0); // 'h'
String sub = s.substring(1, 4); // "ell"
[자바스크립트 예시]
// 자바스크립트
let s = "hello";
let c = s[0]; // 'h'
let sub = s.slice(1, 4); // "ell"
s[1] = 'E'; // "hEllo" (ES6 이후)
- 위 코드에서 str[1] = "E"는 문자열을 변경하지 않음, 단지 해당 인덱스에 값을 할당하려는 시도만 할 뿐
[파이썬 예시]
# 파이썬
s = "hello"
c = s[0] # 'h'
sub = s[1:4] # "ell"
[Q. 시퀀스 자료형이란?]
시퀀스 자료형 |
데이터가 특정 순서대로 나열되어 있고, 각 데이터에 인덱스(번호)를 통해 접근할 수 있는 자료형 |
- 순서: 데이터의 순서가 정해져 있음
- 인덱스 접근: 각 데이터에 0부터 시작하는 인덱스로 접근 가능
- 길이: 데이터 개수 확인 가능
- 슬라이싱: 일부 데이터 추출 가능
728x90