본문 바로가기
공부/JAVA

ArrayList(LinkedList) 를 String으로 변환하는 방법 (JAVA)

by yeaseul912 2022. 5. 24.
728x90

1. + 연산자

문자열을 만드는 제일 쉬운 방법이자 효율이 제일 떨어지는 방법이다. String Type은 선언되는 순간 메모리가 고정되어 할당 되기 때문에 + 연산자로 문자열을 추가(하는것 처럼 보이는)연산을 하면 새로운 메모리에 할당되어 연결된 문자열이 저장된다.

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C");

String str = "";
for (String item : list) {
    str += item + ",";
}
System.out.println(" + 연산자 : " + str);
결과
 + 연산자 : Java,Python,C,

2. StringBuilder

StringBuilder는 +연산자와는 다르게 동적으로 String을 다룰수 있는 객체이다. append 메소드로 문자열을 연결시킬 수 있다.

List<String> list = new LinkedList<>();
list.add("Java");
list.add("Python");
list.add("C");

StringBuilder sb = new StringBuilder();
for (String item : list) {
    sb.append(item);
    sb.append(",");
}
String str = sb.toString();
System.out.println("StringBuilder : " + str);
결과
StringBuilder : Java,Python,C,

3. ArrayList.toString()

ArrayList(LinkedList)에는 java.util.AbstractCollection을 상속하고 있는데, 그 안에 toString이라는 Method가 있어서 사용 가능하다.

toString() 은 brackets으로 감싸지고 , 로 구분되어 해당 컬렉션을 문자열로 반환한다고 설명되어있다.

List<String> list3 = new ArrayList<>();
list3.add("Java");
list3.add("Python");
list3.add("C");
String str3 = list3.toString();
System.out.println("toString() : " + str3);
결과
toString() : [Java, Python, C]

4. String.join()

JAVA8에서 추가된 메서드이다. 아래와 같이 사용하면 된다.

String.join("추가할 문자", "대상 list 혹은 대상 Array");

collect내에서는 Collectors.joining("추가할 문자");

String[] color = new String[] { " 빨강", "노랑", "초록", "파랑" };
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C");

String str1 = String.join(",", list);
String str2 = String.join(",", color);
System.out.println("list join : " + str1);
System.out.println("String join : " + str2);
System.out.println("stream joining : "+ list.stream().collect(Collectors.joining(",")));

결과

list join : Java,Python,C
String join :  빨강,노랑,초록,파랑
stream joining : Java,Python,C

 

5. 마치며

알고리즘 풀때마다 헷갈려서.. 내가 볼라고 만든것이다.

맨날 구글 서치만 했는데 블로그에 정리하니까 머리속에서 정리도 되고 좋은것 같다.

다음번에 알고리즘 풀때는 서치 안하고 바로바로 튀어나왔으면 좋겠다.!

반응형

댓글