파이썬, 자바, 자바스크립트 모두 문자열과 정수를 직접 더할 수 없다.
▶ 리스트 및 배열 구분, 이해하기
https://zoooom-in.tistory.com/136
[Python/JAVA/JS] 자바/자바스크립트의 배열과 파이썬의 리스트, 문자열 관계 이해하기
[공통점]공통점1️⃣ 순차적 데이터 저장 모든 언어에서 배열과 리스트는 데이터를 순서대로 저장2️⃣ 인덱스 접근 각 데이터는 0부터 시작하는 인덱스를 사용하여 접근할 수 있음3️⃣ 다양한
zoooom-in.tistory.com
▶ 다차원 배열, 중첩 배열/리스트 이해하기
https://zoooom-in.tistory.com/137
[Python/JAVA/JS] 다차원 배열, 중첩 배열/리스트
중첩 배열 / 리스트란? 배열 / 리스트 안에 또 다른 배열 / 리스트를 포함하는 자료 구조다차원 데이터를 표현하거나 복잡한 관계를 나타내는 데 유용 자바(Array)자바스크립트(Array)파이썬(list)
zoooom-in.tistory.com
0️⃣ 파이썬, 자바, 자바스크립트 모두 문자열과 정수를 직접 더할 수 없음
파이썬 | 자바 | 자바스크립트 |
- 정수를 문자열로 변환 | - 문자열과 정수를 연결하려면 + 연산자 사용 - String.valueOf() 메서드를 사용하여 정수를 문자열로 변환 |
- 동적 타이핑 언어이므로 암묵적인 형 변환을 허용 |
num = 10
string = "Hello"
# TypeError 발생
# result = string + num
# 정수를 문자열로 변환하여 연결
result = string + str(num)
print(result) # "Hello10"
|
int num = 10;
String string = "Hello";
// 문자열 연결
String result1 = string + num; // "Hello10"
String result2 = string + String.valueOf(num); // "Hello10"
|
let num = 10;
let string = "Hello";
let result = string + num; // "Hello10"
|
1️⃣ 리스트(배열) 내부 복사하기 ⇒ 파이썬 리스트 슬라이싱
Python | Java |
string[start:end] : list 사용, 기본 변수에 담기 - 슬라이싱 기법 |
새로운 배열 생성 후, 옮겨 담는 코드 작성 |
a = [1,2,3,4,5]
b= a[0:2] #기존과 슬라이싱 기법은 동일
print(b)
|
//배열 내용 옮기기
int[] ar = new int[3];
ar[0] = 1;
ar[1] = 2;
ar[2] = 3;
int [] br = new int[3];
for(int i=0; i < br.length;i++) {
br[i] = ar[i];
}
|
▶ 자바스크립트는 어떨까?
※ .slice() 메서드를 활용해서 부분 추출 후 복사
2️⃣ 리스트(배열) 연산 == 리스트 합치기
Python | Java |
string[] + string[] : 리스트끼리 병합 | 새로운 배열 생성 후, 옮겨 담는 코드 작성 |
#리스트 연산
a = [1, 2, 3, 4]
b = [5, 6, 7]
print(a+b) #리스트가 합쳐짐
|
//배열 합치기
int [] ar = new int[3];
ar[0] = 1;
ar[1] = 2;
ar[2] = 3;
int [] br = new int[2];
br[0] = 4;
br[1] = 5;
//새로운 배열 생성
int [] cr = new int[ar.length + br.length];
for(int i=0; i<cr.length;i++) {
if(i < 3) {
cr[i] = ar[i];
} else {
cr[i] = br[i-3];
}
}
|
※ 자바의 ArrayList 사용시, 가변적 리스트 특성상 다른 리스트의 요소를 유동적으로 추가할 수 있음
※ ArrayList.asList를 사용해서 초기화와 동시에 내부적 배열 생성
- .addAll 메서드를 활용해서 리스트 내부값 모두를 추가
※ 자바의 Arraycopy()메서드를 사용해서 배열의 내부를 복사할 수 있음
※ System.arrayCopy 메서드
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
- Arrays.toString 메서드는 배열의 요소를 문자열로 변환하여, 배열의 내용을 보기 쉽게 출력할 수 있도록 함
▶ 자바스크립트는 어떨까?
1️⃣ .concat() 메서드 사용 : 두 개 이상의 배열을 합쳐서 새로운 배열을 반환
2️⃣.push() 메서드 사용 : 기존 배열을 수정해서 다른 배열의 요소 추가
※ 얕은 복사, push(한가지) 만을 진행할 수도 있음
※ 스프레드 연산자 ... : 배열/객체를 개별 요소로 확장하여 함수 호출, 배열/객체 결합, 복사 등에 매우 유용하게 사용
3️⃣ 리스트 수정
파이썬 | 자바 | 자바스크립트 |
배열에 인덱스를 사용하여 직접 접근하여 요소를 수정 | ||
#리스트 수정
a = [1, 2, 3, 4, 5]
a[2] = 4 #손쉽게 변경 가능
print(a)
|
int [] ar = {1,2,3,4,5};
ar[2] = 4;
for(int i = 0; i < ar.length ; i++) {
System.out.println(ar[i]);
}
|
let a = [1, 2, 3, 4, 5];
a[2] = 4;
console.log(a); // [1, 2, 4, 4, 5]
|
4️⃣ 리스트 내부 '값' 추가
파이썬 | 자바 | 자바스크립트 |
str.append() : .append 메서드 활용 | 배열 크기 변경 불가 | string.push() : push 메서드 활용 |
a = [1, 2, 3, 4, 5]
a.append(6)
print(a)
|
let a = [1, 2, 3, 4, 5];
a.push(6);
console.log(a);
|
※ 단 Java에서 ArrayList를 이용해서 해당 문제 해결 : .add() 메서드 활용
4️⃣-1️⃣ 리스트 '중간 요소 삽입'
파이썬 | 자바 | 자바스크립트 |
str.insert() : .insert 메서드 활용 | 배열 크기 변경 불가 | string.splice() : splice 메서드 활용 |
a = [1, 2, 3]
a.insert(0,99);
print(a)
|
let a = [1, 2, 3];
a.splice(0, 0, 99); // 첫 번째 인덱스에 99를 삽입
console.log(a); // [99, 1, 2, 3]
|
- splice(첫번째 인덱스, 제거할 요소의 수, 삽입할 요소)
※ 단 Java에서 ArrayList를 이용해서 해당 문제 해결 : .add(위치, 삽입할 숫자)
4️⃣-2️⃣ 리스트 내부 '리스트' 추가
파이썬 | 자바 | 자바스크립트 |
str.extend() : .extend 메서드 활용 | 배열 크기 변경 불가 | string.push() : 동일하게 push 메서드 활용 |
a = [1, 2, 3, 4]
a.extend([5, 6, 7])
print(a)
|
let a = [1, 2, 3, 4];
a.push(6, 7, 8);
console.log(a);
|
※ 단 Java에서 ArrayList를 이용해서 해당 문제 해결 : .addAll() 메서드 활용
※ ArrayList의 addAll 메서드
다른 컬렉션의 모든 요소를 현재 리스트에 추가할 때 사용
이 때, addAll 메서드는 Collection 타입의 인자를 받음
∴ 따라서 다음과 같이 ArrayList에 직접 요소를 열거하여 추가할 수는 없음
5️⃣ 리스트 삭제
파이썬 | 자바 | 자바스크립트 |
del str[] : del 메서드 활용 | 배열 크기 변경 불가 | string.splice() : splice 메서드 활용 |
a = [1,2,3,4,5]
del a[2]
print(a)
|
let a = [1, 2, 3, 4, 5];
a.splice(2, 1); // 인덱스 2에서 1개의 요소 삭제
console.log(a); // [1, 2, 4, 5]
|
※ 단 Java에서 ArrayList를 이용해서 해당 문제 해결 : .remove()메서드 활용
5️⃣- 1️⃣ 특정 요소 삭제
파이썬 | 자바 | 자바스크립트 |
str.remove() : remove()메서드 활용 | 배열 크기 변경 불가 | 특정 요소 탐색 코드 작성 |
a.remove(5)
print(a)
|
let a = [1, 2, 3, 4, 5];
let index = a.indexOf(5);
if (index !== -1) {
a.splice(index, 1);
}
console.log(a); // [1, 2, 3, 4]
|
※ 단 Java에서 ArrayList를 이용해서 해당 문제 해결 : .remove()메서드 활용 ⇒ 인덱스 및 요소 삭제 가능
6️⃣ 리스트 정렬
파이썬 | 자바 | 자바스크립트 |
str.sort() : sort() 메서드 사용 | 배열 크기 변경 불가 | string.sort() : 배열 객체의 sort() 메서드를 사용 |
a = [5, 4, 3, 2, 1]
a.sort()
print(a)
|
let a = [5, 4, 3, 2, 1];
a.sort();
console.log(a);
|
※ 단 Java에서 ArrayList를 이용해서 해당 문제 해결 : Collections.sort()메서드 활용
7️⃣ 인덱스 반환
파이썬 | 자바 | 자바스크립트 |
str.index(찾을 요소) : index()메서드 활용 | 배열 순회 | string.indexOf(찾을요소) : indexOf() 메서드 활용 |
#인덱스 반환
a = [1,2,3]
print(a.index(3))
|
int[] a = {1, 2, 3};
int target = 3;
int index = -1;
for (int i = 0; i < a.length; i++) {
if (a[i] == target) {
index = i;
break;
}
}
|
let a = [1, 2, 3];
let index = a.indexOf(3);
console.log(index);
|
🔢문자열과 동일하게 list 반복, count등 메서드 사용 가능..
'용어 > Differences by language' 카테고리의 다른 글
[Python/JAVA/JS] 다차원 배열, 중첩 배열/리스트 (0) | 2024.06.26 |
---|---|
[Python/JAVA/JS] 자바/자바스크립트의 배열과 파이썬의 리스트, 문자열 관계 이해하기 (0) | 2024.06.26 |
[Python/JAVA] 문자열 비교 (0) | 2024.06.25 |
[Python/Java/Js] 연산자 비교 (0) | 2024.06.25 |
[국비][JAVA/JS] 자바와 자바스크립트의 차이 (0) | 2024.05.27 |