자바 학습 의 배열 1 (1. 배열 의 성명, 2. 요 소 는 데이터 형식 을 참조 하 는 배열 입 니 다. 3. main 방법 에 있 는 String [] args, 4. 배열 정렬, 5. 수 3 퇴 1 배열 알고리즘 (배열 로 링크 를 모 의 함), 6 배열 에서 찾 는 이분법, 7 배열 의 복사)

32794 단어 String

1. 배열 의 설명:
자바 언어 에서 배열 을 설명 할 때 길 이 를 지정 할 수 없습니다 (배열 에 있 는 요소 의 개수).
int a[5];   //불법
int a[][5];   //불법
 
2. 요 소 는 데이터 형식 을 참조 하 는 배열 입 니 다.
메모: 요 소 는 데이터 형식 을 참조 하 는 배열 의 모든 요 소 를 예화 해 야 합 니 다.
 
3. main 방법의 String [] args 에 대하 여:
String args [] 또는 String [] args 는 주 방법 에 문자열 배열 을 전달 하 는 것 을 표시 합 니 다.
 
 1 public class TextNumSort {

 2     public static void main(String[] args){

 3         int[] a=new int[args.length];

 4         for(int i=0;i<args.length;i++){

 5             a[i]=Integer.parseInt(args[i]);

 6         }

 7         Print(a);

 8         SelectionSort(a);

 9         Print(a);

10     }

11 

12     private static void Print(int[] arry){

13         for(int i=0;i<arry.length;i++){

14             System.out.print(arry[i]+" ");

15         }

16         System.out.println();

17     }

18     private static void SelectionSort(int[] arry){

19         int k,temp;

20         for(int i=0;i<arry.length;i++){

21             k=i;

22             for(int j=k+1;j<arry.length;j++){

23                 if(arry[j]<arry[k]){

24                     j=k;

25                 }

26                 if(k!=0){

27                     temp=arry[k];

28                     arry[k]=arry[j];

29                     arry[j]=temp;

30                     

31                 }

32             }

33         }

34     }

35 }

 
 
컴 파일 시 입력 배열: 41 15 48 54 79 41 48 61
출력 결과:
12 15 41 41 48 48 54 61 79
 
4. 배열 정렬:
거품 법 과 정렬 법 선택:
 
 1 class Date{

 2     public int year,month,day;

 3     Date(int year,int month,int day){

 4         this.year=year;

 5         this.month=month;

 6         this.day=day;

 7         }

 8     public int Compare(Date date){

 9         return year>date.year?1:year<date.year?-1:month>date.month?1:month<date.month?-1:day>date.day?1:day<date.day?-1:0;

10         }

11     public String toString(){

12         return "year,month,day:"+year+"-"+month+"-"+day;

13     }

14 }

15 public class TextBubbleSort {

16     public static void main(String[] args){

17         Date[] days=new Date[5];

18         days[0]=new Date(2012,10,1);

19         days[1]=new Date(2011,5,1);

20         days[2]=new Date(2010,4,16);

21         days[3]=new Date(2004,10,16);

22         days[4]=new Date(2007,7,23);

23         Print(days);

24         BubbleSort(days);

25         Print(days);

26     }

27     private static void Print(Date[] a){

28         for(int i=0;i<a.length;i++){

29             System.out.print(a[i]+" ");

30         }

31         System.out.println();

32     }

33     /*public static Date[] SelectionSort(Date[] a){

34         int len=a.length;                                                    

35         int k,i,j;

36         for(i=0;i<len;i++){

37             for( j=i+1;j<len;j++){

38                 k=i;

39                 if(a[j].Compare(a[k])>0){

40                     k=j;

41                 }

42                 if(k!=0){

43                     Date temp;

44                     temp=a[j];

45                     a[j]=a[k];

46                     a[k]=temp;        

47                 }

48             

49             }

50         }

51         return a;

52     }*/

53     

54     public static Date[] BubbleSort(Date[] a){

55         int len=a.length;

56         for(int i=len-1;i>0;i-- ){

57             for(int j=0;j<i;j++){

58                 if(a[j].Compare(a[i])>0){

59                     Date temp;

60                     temp=a[j];

61                     a[j]=a[i];

62                     a[i]=temp;

63                 }

64             }

65         }

66         return a;

67     }

68     

69     

70 }

71     

메모: toString 방법 을 다시 씁 니 다.
 
출력 결과:
year,month,day:2012-10-1 year,month,day:2011-5-1 year,month,day:2010-4-16 year,month,day:2004-10-16 year,month,day:2007-7-23 year,month,day:2004-10-16 year,month,day:2007-7-23 year,month,day:2010-4-16 year,month,day:2011-5-1 year,month,day:2012-10-1
 
5. 1. 배열 알고리즘:
500 명 3 퇴 1
 
 1 public class TextCount {

 2     public static void main(String[] args){

 3         boolean[] arr=new boolean[500];

 4         for(int i=0;i<arr.length;i++){

 5             arr[i]=true;

 6         }

 7         int leftCount=arr.length;

 8         int countNum=0;

 9         int index=0;

10         while(leftCount>1){

11             if(arr[index]==true){

12                 countNum++;

13                 if(countNum==3){

14                     countNum=0;

15                     arr[index]=false;

16                     leftCount--;

17                 }

18             }    

19             index++;

20             if(index==arr.length){

21                 index=0;

22             }

23         }

24         for(int i=0;i<arr.length;i++){

25             if(arr[i]==true){

26                 i=i+1;

27                 System.out.println("The last one's number is :"+i);

28                 

29             }

30         }

31     }

32 }

 
출력 결과: The last one 's number is: 436
 
 
5.1.2.
500 명 3 퇴 1
대상 지향 방법: (배열 로 링크 시 뮬 레이 션)
 1 public class Count3Quit2 {

 2  

 3   public static void main(String[] args) {

 4          KidCircle kidCircle = new KidCircle(500);

 5          int count = 0;

 6          Kid kid = kidCircle.first;

 7          while(kidCircle.count>1){

 8               count++;

 9               if(count==3){

10                       count=0;

11                       kidCircle.delete(kid);

12                }

13                kid = kid.right;

14           }

15           System.out.println(kidCircle.first.id);

16     }

17 }

18 

19  

20 

21 class Kid {

22         int id;

23         Kid right;

24         Kid left;

25 

26         Kid(int id) {

27                this.id = id;

28         }

29 }

30 

31 class KidCircle{

32         int count;

33         Kid first;

34         Kid last;

35 

36         KidCircle(int n){

37                 for(int i=0;i<n;i++){

38                     add();

39                 }

40          }

41        public void  add(){              //       。

42                 Kid kid = new Kid(count);

43                 if(count==0){

44                       first = kid;

45                       last = kid;

46                       kid.right = kid;

47                       kid.left = kid;

48                 }else{

49                       last.right = kid;

50                       kid.left = last;

51                       kid.right = first;

52                       first.left = kid;

53                       last = kid;

54                 }

55                  count++; 

56           }

57 

58           public void delete(Kid kid) {

59                   if(count<=0)return;

60                   else{

61                            kid.left.right = kid.right;

62                            kid.right.left = kid.left;

63                            if(kid==first) {

64                                        first = kid.right;

65                            }else if(kid==last){

66                                        last = kid.left;

67                            }

68                             count--;

69                   }

70            }

71 }

 
 
 
6. 배열 찾기 의 이분법:
 
 1  public static int binarySearch(int[] array, int value){  

 2         int low = 0; //           

 3         int high = array.length - 1; //           

 4         int middle; //          

 5         while(low <= high){  

 6             middle = (low+high) / 2;  

 7             for(int i=0; i<array.length; i++){  

 8                 System.out.print(array[i]);  

 9                 if(i == middle){  

10                     System.out.print("#"); //      #            

11                 }  

12                 System.out.print(" "); //            

13             }  

14             System.out.println();  

15             if(value == array[middle]){  

16                 return middle;  

17             }  

18             if(value < array[middle]){  

19                 high = middle - 1; //         

20             }  

21             if(value > array[middle]){  

22                 low = middle + 1; //         

23             }  

24         }  

25         return -1; //         -1   

26     }  

27 }  

 
 
 
7. 배열 의 복사:
     :System.arrycopy(args1,args2,args3,args4,args5);
args1:   
args2:
args3:
args4:
args5:


 1 public class TextArrayCopy {

 2     public static void main(String[] args){

 3         int[] myArray={1,2,3,4,5,6};

 4         int hold[]={10,9,8,7,6,5,4,3,2,};

 5         System.arraycopy(myArray,0,hold,0,myArray.length);

 6         for(int i=0;i<hold.length;i++){

 7         System.out.print(hold[i]);    

 8         }

 9         

10     

11     }

12 }

 
 출력 결과:
123456432
 2 차원 배열 복사:
System.arraycopy(strArray[i], 0, copyArray[i], 0, strArray[i].length);


좋은 웹페이지 즐겨찾기