package test; import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; class MyArrayList{ private int[] arr; private int number; public MyArrayList() { this.arr = new int[10]; this.number = 0; } public boolean add(int a) { if(number < 10) { arr[number] = a; number++; return true; } return false; } @Override public String toString() { int[] arr2 = new int[number]; for (int i = 0; i < arr2.length; i++) { arr2[i] = arr[i]; } return Arrays.toString(arr2); } //****** lab1_6 ¿¡ ´ÙÀ½ ¸Þ¼ÒµåµéÀ» Ãß°¡ //get - À妽º¸¦ ¸Å°³º¯¼ö·Î ¹Þ¾Æ ¹è¿ÀÇ ÇØ´ç Á¤¼ö°ªÀ» ¸®ÅÏ O(1) public int get(int index) { return arr[index]; } //size - ¸®½ºÆ®ÀÇ ±æÀ̸¦ ¸®ÅÏ(¹è¿ Å©±â°¡ ¾Æ´Ô) O(1) public int size() { return arr.length; } //add - À妽º¿Í Á¤¼ö°ªÀ» ¸Å°³º¯¼ö·Î ¹Þ¾Æ ¹è¿ÀÇ ÇØ´ç À§Ä¡¿¡ Á¤¼ö°ªÀ» »ðÀÔ O(n) public void add(int index, int a) { int swap; for (int i = 0; i < arr.length - index; i++) { swap = arr[index+1]; arr[index+1] = arr[index]; number++; } arr[index] = a; } //remove - À妽º¸¦ ¸Å°³º¯¼ö·Î ¹Þ¾Æ ¹è¿ÀÇ ÇØ´ç À§Ä¡ Á¤¼ö°ªÀ» »èÁ¦ÇÏ°í ±× °ªÀ» ¸®ÅÏ O(n) public int remove(int index) { int result = arr[index]; for (int i = 0; i < arr.length-index-1; i++) { arr[index--] = arr[index]; } return result; } } public class MyArrayListTest { public static void main(String[] args) { System.out.println("hw5_1: ¿ëµ¿Áß"); Scanner input = new Scanner(System.in); // (1) Integer¸¦ ŸÀÔ ¸Å°³º¯¼ö·Î ÇÏ¿© ArrayList °´Ã¼¸¦ »ý¼º(list¶ó´Â À̸§ÀÇ º¯¼ö¿¡ ÀúÀå) MyArrayList list = new MyArrayList(); // ¿Ï¼ºÇϼ¼¿ä. // (2) »ç¿ëÀÚ¿¡°Ô ¸Þ´º¸¦ ¹Ýº¹ Á¦°øÇϰí 7À» ÀÔ·ÂÇÏ¸é ¹Ýº¹ Á¾·á int menu = 0; int index = 0; int element = 0; do { System.out.print(" 1:À妽ºÁ¶È¸ 2:ÀüüÁ¶È¸ 3:±æÀÌÁ¶È¸ 4:»ðÀÔ 5:À妽º»ðÀÔ 6:À妽º»èÁ¦ 7:Á¾·á ---> "); menu = input.nextInt(); switch(menu) { case 1: System.out.println("À妽º À§Ä¡ÀÇ ¿ø¼Ò°ªÀ» Á¶È¸ÇÕ´Ï´Ù."); System.out.print("À妽º ÀÔ·Â: "); index = input.nextInt(); element = list.get(index); // ¿Ï¼ºÇϼ¼¿ä. System.out.println(element); break; case 2: System.out.println("¸®½ºÆ® Àüü¸¦ Á¶È¸ÇÕ´Ï´Ù."); System.out.println(list.toString()); // ¿Ï¼ºÇϼ¼¿ä. break; case 3: System.out.println("¸®½ºÆ® ±æÀ̸¦ Á¶È¸ÇÕ´Ï´Ù."); int size = list.size(); // ¿Ï¼ºÇϼ¼¿ä. System.out.println(size); break; case 4: System.out.println("¿ø¼Ò¸¦ ¸®½ºÆ®ÀÇ ¸Ç µÚ¿¡ »ðÀÔÇÕ´Ï´Ù."); System.out.print("Á¤¼ö°ª ÀÔ·Â: "); element = input.nextInt(); list.add(element);; // ¿Ï¼ºÇϼ¼¿ä. break; case 5: System.out.println("À妽º À§Ä¡¿¡ ¿ø¼Ò¸¦ »ðÀÔÇÕ´Ï´Ù."); System.out.print("À妽º ÀÔ·Â: "); index = input.nextInt(); System.out.print("Á¤¼ö°ª ÀÔ·Â: "); element = input.nextInt(); list.add(index, element); // ¿Ï¼ºÇϼ¼¿ä. break; case 6: System.out.println("À妽º À§Ä¡ÀÇ ¿ø¼Ò¸¦ »èÁ¦ÇÕ´Ï´Ù."); System.out.print("À妽º ÀÔ·Â: "); index = input.nextInt(); element = list.remove(index); // ¿Ï¼ºÇϼ¼¿ä. System.out.println(element); break; case 7: System.out.println("Á¾·áÇÕ´Ï´Ù."); break; default: System.out.println("¸Þ´º ¼±Åà ¿À·ù: ´Ù½Ã ¼±ÅÃÇϼ¼¿ä."); } } while(menu != 7); } } /* ---------------------------------------------------------- ´ÙÀ½°ú °°ÀÌ Á¤¼ö ¸®½ºÆ®¸¦ °ü¸®ÇÏ´Â MyArrayList Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ°í »ç¿ëÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇϽÿÀ. - MyArrayList Ŭ·¡½º (lab1_6ÀÇ MyArrayList Ŭ·¡½º¿¡ ****** ºÎºÐ ¸Þ¼ÒµåµéÀ» Ãß°¡ÇÏ¸é µÊ) Çʵå(private ÀνºÅϽº º¯¼ö): Á¤¼ö ¹è¿ ¹è¿¿¡ ÀúÀåµÈ Ç׸ñ¼ö ¸Þ¼Òµå(public ¸Þ¼Òµå): ¸Å°³º¯¼ö°¡ ¾ø´Â constuctor - Á¤¼ö ¹è¿ Çʵ带 Å©±â°¡ 10ÀÎ ¹è¿·Î ÃʱâÈÇϰí, Ç׸ñ¼ö Çʵå´Â 0À¸·Î ÃʱâÈ ¿ø¼Ò »ðÀÔ ¸Þ¼Òµå(add) - Á¤¼ö°ªÀ» ¸Å°³º¯¼ö·Î ¹Þ¾Æ ¹è¿¿¡ »ðÀÔ »ðÀÔ ¼ø¼´ë·Î ¹è¿ÀÇ ¾ÕºÎºÐºÎÅÍ Ã¤¿ò »ðÀÔ¿¡ ¼º°øÇϸé true ¸®ÅÏ ¹è¿ÀÌ °¡µæ Â÷¸é »ðÀÔÇÏÁö ¾ÊÀ¸¸ç, false¸¦ ¸®ÅÏ toString ¿À¹ö¶óÀ̵å - ¹è¿¿¡ ÀúÀåµÈ Ç׸ñ Àüü¸¦ ¹®ÀÚ¿·Î ¸®ÅÏ ****** lab1_6 ¿¡ ´ÙÀ½ ¸Þ¼ÒµåµéÀ» Ãß°¡ get - À妽º¸¦ ¸Å°³º¯¼ö·Î ¹Þ¾Æ ¹è¿ÀÇ ÇØ´ç Á¤¼ö°ªÀ» ¸®ÅÏ O(1) size - ¸®½ºÆ®ÀÇ ±æÀ̸¦ ¸®ÅÏ(¹è¿ Å©±â°¡ ¾Æ´Ô) O(1) add - À妽º¿Í Á¤¼ö°ªÀ» ¸Å°³º¯¼ö·Î ¹Þ¾Æ ¹è¿ÀÇ ÇØ´ç À§Ä¡¿¡ Á¤¼ö°ªÀ» »ðÀÔ O(n) remove - À妽º¸¦ ¸Å°³º¯¼ö·Î ¹Þ¾Æ ¹è¿ÀÇ ÇØ´ç À§Ä¡ Á¤¼ö°ªÀ» »èÁ¦ÇÏ°í ±× °ªÀ» ¸®ÅÏ O(n) - µå¶óÀ̹ö Ŭ·¡½º(¿¹¸¦ µé¾î MyArrayListTest Ŭ·¡½º)ÀÇ main ¸Þ¼Òµå´Â ´ÙÀ½À» ¼öÇà (1) MyArrayList °´Ã¼¸¦ »ý¼º(list¶ó°í ÇÏÀÚ) (2) »ç¿ëÀÚ¿¡°Ô ´ÙÀ½°ú °°Àº ¸Þ´º¸¦ ¹Ýº¹ÇÏ¿© Á¦°øÇ쵂 7 ÀԷ½à ¹Ýº¹ Á¾·á 1:À妽ºÁ¶È¸ 2: ÀüüÁ¶È¸ 3:±æÀÌÁ¶È¸ 4:»ðÀÔ 5:À妽º»ðÀÔ 6:À妽º»èÁ¦ 7:Á¾·á 1 ¼±ÅýÃ, »ç¿ëÀڷκÎÅÍ À妽º¸¦ ÀÔ·Â¹Þ¾Æ list¿¡¼ °ªÀ» Á¶È¸ÇÏ¿© Ãâ·Â(get È£Ãâ) 2 ¼±ÅýÃ, listÀÇ Àüü ³»¿ëÀ» Ãâ·Â(toString È£Ãâ) 3 ¼±ÅýÃ, listÀÇ ±æÀ̸¦ Ãâ·Â(size È£Ãâ) 4 ¼±ÅýÃ, »ç¿ëÀڷκÎÅÍ Á¤¼ö°ªÀ» ÀÔ·Â¹Þ¾Æ list¿¡ »ðÀÔ(add È£Ãâ) 5 ¼±ÅýÃ, »ç¿ëÀڷκÎÅÍ À妽º¿Í Á¤¼ö°ªÀ» ÀÔ·Â¹Þ¾Æ list¿¡ »ðÀÔ(add È£Ãâ) ** ÁÖÀÇ: ¹Ýµå½Ã À妽º, Á¤¼ö°ª ¼ø¼·Î ÀԷ¹ÞÀ» °Í 6 ¼±ÅýÃ, »ç¿ëÀڷκÎÅÍ À妽º¸¦ ÀÔ·Â¹Þ¾Æ list¿¡¼ °ªÀ» »èÁ¦ÇÏ¿© Ãâ·Â(remove È£Ãâ) ** ¿É¼Ç1: À妽º°¡ ¹üÀ§¸¦ ¹þ¾î³µÀ» ¶§ IndexOutOfBoundsException ¿¹¿Ü ¹ß»ýÇϵµ·Ï ÇØ º¼ °Í (¹è¿ÀÇ À妽º°¡ ¾Æ´Ï¶ó ¸®½ºÆ®ÀÇ À妽º¸¦ ¹þ¾î³µÀ» ¶§ ¿¹¿Ü¸¦ ¹ß»ý½ÃÄÑ¾ß ÇÔ) ** ¿É¼Ç2: ³»ºÎ Á¤¼ö ¹è¿ÀÌ °¡µæÂù °æ¿ì false ¸®ÅÏÇÏ´Â ´ë½Å, Á¤¼ö ¹è¿À» 2¹è·Î È®ÀåÇϵµ·Ï ÇØ º¼ °Í (ÀÌ °æ¿ì ù¹øÂ° add ¸Þ¼ÒµåÀÇ ¸®ÅÏ °ªÀº Ç×»ó trueÀÌ´Ù) ** ¿É¼Ç3: MyArrayList Ŭ·¡½º¸¦ Á¤¼ö°ª À̿ܿ¡µµ ´Ù¾çÇÑ ÀÚ·áÇüÀÇ °´Ã¼ ¿ø¼Ò¸¦ ´Ù·ê ¼ö ÀÖµµ·Ï Á¦³×¸¯ Ŭ·¡½º·Î ÀÛ¼ºÇØ º¼ °Í ** ¿É¼Ç4: toString() ¿¡¼ String ´ë½Å StringBuffer¸¦ ÀÌ¿ëÇÏ¿© ±¸ÇöÇØ º¼ °Í ---------------------------------------------------------- ¸ñÀû - ¼øÂ÷ÀڷᱸÁ¶ ¿¬»ê ±¸ÇöÀ» ¿¬½ÀÇÑ´Ù. ---------------------------------------------------------- À¯ÀÇ»çÇ× - ÀûÀýÇÑ comment //*************************** // ÆÄÀϸí: ... .java // ÀÛ¼ºÀÚ: ... // ÀÛ¼ºÀÏ: ... // ¼³¸í:... //*************************** - µé¿©¾²±â - ½Äº°ÀÚ À̸§À» ÀÚ¹Ù °ü·Ê¿¡ ¸Â°Ô ÀûÀýÈ÷ ºÙÀÏ °Í - command-line¿¡¼ java -jar °úÁ¦ÄÚµå.jar ·Î äÁ¡ÇÕ´Ï´Ù. öÀÚµµ ¶È°°°Ô ÀÌ ¸í·ÉÀÌ Á¦´ë·Î ½ÇÇàµÇ¾î¾ß ÇÕ´Ï´Ù. - °úÁ¦ÄÚµå¿Í º»ÀÎÀÇ À̸§À» ¸Ç óÀ½ Ãâ·Â ---------------------------------------------------------- Á¦Ãâ - °úÁ¦ÄÚµå.jar ÆÄÀÏ - .java ÆÄÀÏ */