«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

장미의 개발일기

코드의 중복성 제거하여 개선해보기 본문

개발일기/팀스터디 및 프로젝트+면접 질응답 정리

코드의 중복성 제거하여 개선해보기

민장미 2023. 4. 27. 19:12

아래의 코드의 중복을 제거하여, 최대한 간결하게 개선해보기 

package ex1;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Scanner;

//LinkedList와 ArrayList의 속도 체크 비교하기
public class Ex2_LinkedListArrayList {
	public void arrayList(ArrayList<String> ar) {
		long start = System.currentTimeMillis();
		for (String e : ar) {
			String msg = e;
			if (e.equals("Kosmo132")) {
			}
		}
		long end = System.currentTimeMillis();
		System.out.println("소요시간 :" + (end - start));
	}

	public void linkedList(LinkedList<String> ar) {
		long start = System.currentTimeMillis();
		for (String e : ar) {
			String msg = e;
			if (e.equals("Kosmo132")) {
			}
		}
		long end = System.currentTimeMillis();
		System.out.println("소요시간 :" + (end - start));
	}

	public static void main(String[] args) {
		Ex2_LinkedListArrayList ref = new Ex2_LinkedListArrayList();
		// 더미 데이터를 사용해서 각각의 메서드에게 데이터를 주입
		ArrayList<String> ar1 = new ArrayList<String>();
		LinkedList<String> ar2 = new LinkedList<String>();
		Scanner sc = new Scanner(System.in);
		System.out.print("1-ArrayList, 2-LinkedList :");
		int menu = Integer.parseInt(sc.nextLine());
		if (menu == 1) {
			// 소요시간 :106
			for (int i = 0; i < 100000000; i++) {
				if(i % 5 == 0) {
					ar1.add("Kosmo132");
				}else {
					ar1.add("Java");
				}
			}
			//test
			ref.arrayList(ar1);
		} else if (menu == 2) {
			//소요시간 :495
			for (int i = 0; i < 100000000; i++) {
				if(i % 5 == 0) {
					ar2.add("Kosmo132");
				}else {
					ar2.add("Java");
				}
			}
			//test
			ref.linkedList(ar2);
		}
	}
}

 

이리저리 해보다가 오류 났고...

팀에서 잘하시는 분 코드를 잠깐 보고 어떤 식으로 작성했는지 본 다음

안 보고 끝까지 해봤음 완성했다!!

 

package teamfinal;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
// 중복성을 제거하여 수정하여 보자. 

public class Ex2_LinkedListArrayList {

	public void test(int menu) {
		List<String> list = null;

		// 메뉴 선택에 따른 각 객체 생성
		if (menu == 1) {
			list = new ArrayList<>();
		} else if (menu == 2) {
			list = new LinkedList<>();
		}

		for (int i = 0; i < 100000000; i++) {
			if (i % 5 == 0) {
				list.add("Kosmo132");
			} else {
				list.add("Java");
			}
		} // for

		long start = System.currentTimeMillis();
		for (String e : list) {
			String msg = e;
			if (e.equals("Kosmo132")) {
			}
		}
		long end = System.currentTimeMillis();
		System.out.println("소요시간 :" + (end - start));

	}// test

	public static void main(String[] args) {
		Ex2_LinkedListArrayList ref = new Ex2_LinkedListArrayList();

		Scanner sc = new Scanner(System.in);
		System.out.print("1-ArrayList, 2-LinkedList :");
		int menu = Integer.parseInt(sc.nextLine());

		ref.test(menu);

	}// main
}// pu clas

아직 메인에 최대한 간결하게 작성하는게 잘 안된다 ㅠㅠ