JAva配列まとめ(付与、反転、追加、検索)

82218 ワード

配列の初期化

import java.util.Scanner;

public class   ArrayTest1{
	public static void main(String[] args) {

		//       
		//1,         int arr1[] = new int[3];
		//2,        int[] arr2 = {1,2,3,4};   int arr2[] = new int[]{1,2,3,4};

		//    
		//     
		int arr1[] = new int[3];

		//     
		int[] arr2 = new int[]{1,2,4};

		int arr3[] = {1,2,3,4};
		
		//   arr2  //      0  
		for (int i = 0 ; i<arr2.length ; i++){
			System.out.println("arr2[" + i + "]=" + arr2[i]);
		}
		
		//  arr3
		for (int i = 0 ; i<arr3.length ; i++){
			System.out.println("arr3[" + i +  "]=" + arr3[i]);
		}
		
		//  :        ,             new
		int arr4[] ;  //   
		
		//  
		//arr4 = new int[]{1,2,3};   //  
		//arr4 = {1,3,4};    //     


		//  :    5   ,   double  ,   

		Scanner sc= new Scanner(System.in);
		
		double arr5[] = new double[5];  //      

		for (int i =0; i< arr5.length ; i++ ){
			System.out.println("     :");
			arr5[i] = sc.nextDouble();
		}
		System.out.println("==========      ======");
		for (int i = 0 ; i<arr5.length ; i++){
			System.out.print("arr5[" + i +  "]=" + arr5[i] + "\t");
		}
		/*
		     ,      ,    
		int 	0,short 0, byte 0, long 0, 
		float 0.0,double 0.0,char \u0000,
		boolean false,String null

		*/

		
		
	}
}


配列の注意



public class ArrayTest2 {
	public static void main(String[] args) {
		//6.5	           

		//1)	              ,            

		//int arr1[] = {1,2,3,1.1};  //    1.1  double   int      

		double arr2[] = {1.1, 2, 3.1, 'a'};  //    int -》double ,char -》double         
		
		//2.               ,           ,      
		char arr3[] = {'a','d','q'};

		//3.      ,      ,    
		//   int 	0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000,boolean false,
		//  String null

		String arr4[] = new String[3];
		//  arr4
		for (int i=0; i<arr4.length ; i++ ){
			System.out.print("arr4[" + i +  "]=" + arr4[i] + "\t");  //   null
		}

		//4.        1.           2           3     
		//5.       0   
		//6.              ,   :      
		
		int arr5[] = new int[3];
		System.out.println(arr5[0]); //0
		System.out.println(arr5[2]); //0
		//System.out.println(arr5[3]); //java.lang.ArrayIndexOutOfBoundsException


		//       ,        (object),                   
		
		int arr6[] = new int[4];
		int arr7[] = arr6;
		int arr8[] = arr7;
		arr8[1] = 123;
		System.out.println(arr6[1]); //123
		System.out.println(arr7[1]); //123
		System.out.println(arr8[1]); //123

		//1)	    char   26      ,     'A'-'Z‘。
		//  for             。  :char       'A'+1 -> 'B','0'+1 -> '1‘
	
		//  char      
		char arr9[] = new char[26];
		
		//  
		for (int i = 0; i<arr9.length; i++ ){
			arr9[i]  = (char)('A' + i);
		}

		//  
		for (int j=0; j<arr9.length ; j++ ){
			System.out.print("arr9[" + j +  "]=" + arr9[j] + "\t");
		}

		//  2:2)	           ,        。
		//   :
		//1.    ,
		//2.            max=4,        maxindex = 0
		//3.  max           ,       max =     ;
		//4.              。    max maxindex

		int arra[] = {4, 9, -3, 100, 34, 90, 1};
		int max = arra[0]; //   
		int maxIndex = 0;//     
		for (int i =1; i<arra.length ; i++){  //max         
			if (arra[i] > max){
				max = arra[i]; //max     
				maxIndex = i; //       
			}
		}
		System.out.println("max=" + max + " , maxindex=" + maxIndex);


	}
}


配列のコピー


public class  ArrayTest3{
	public static void main(String[] args) {
		//3)	             。
		//       
		int arr1[] = new int[]{12,34,23,45,65,865,43};

		int sum  = 0;  // 
		double avg = 0; //   
		for (int i=0; i<arr1.length ; i++ ){
			sum += arr1[i];
		}
		avg = sum / arr1.length;
		System.out.println("sum = "+ sum + ",avg=" + avg); //sum = 1087,avg=155.0

		//     
		//    
		int arr2[] = {1,34,5,53,78};

		//       , arr2    
		int arr02[] = new int[arr2.length];
		int arr01[] = new int[arr2.length];
		
		// arr2      
		for (int i =0; i< arr2.length ; i++ ){
			System.out.print("arr2=" + arr2[i] + "
"
); } System.out.println(); // , , arr02 = arr2; // arr02 , arr2 。 arr02[0] = 100; // for (int i =0; i< arr02.length ; i++ ){ System.out.print("arr02=" + arr02[i] + "
"
); } System.out.println(); // arr2 for (int i =0; i< arr2.length ; i++ ){ System.out.print("arr2=" + arr2[i] + "
"
); } System.out.println(); // , , for (int i =0; i< arr2.length ; i++ ){ arr01[i] = arr2[i]; } // , arr01[0] = 100; // for (int i =0; i< arr01.length ; i++ ){ System.out.print("arr01=" + arr01[i] + "
"
); } } }

配列の反転



public class  ArrayTest4{
	public static void main(String[] args) 	{

		//     

		//  :       ,       ,          。
		//  1 ,        
		//  2,              
			
		//     
		/*
		int arr1[] = {1,2,3,4,5};
		   :    arr1= {1,2,3,4,5} -》1 5          {5,2,3,4,1}
		   : arr1={5,2,3,4,1}   -》2  4        {5,4,3,2,1}
		
		    :    arr.length /2 =>5/2 = 2
						arr[0]  arr[4]    arr[1]  arr[3]   arr[i]  arr[arr.length -1 - i]

		*/
		
		int arr1[] = {1,2,3,4,5};
		for (int i =0; i< arr1.length ; i++ ){
			System.out.print("arr1=" + arr1[i] + "\t");
		}
		int temp = 0;//    
		for (int i=0; i< arr1.length / 2 ; i++ ){
			temp=arr1[i] ;
			arr1[i] = arr1[arr1.length-1-i];
			arr1[arr1.length-1-i] = temp;

		}
		System.out.println("         ");
		for (int i =0; i< arr1.length ; i++ ){
			System.out.print("arr1=" + arr1[i] + "\t");
		}

		System.out.println("         ");
		//                        (     )
		for (int i =arr1.length -1; i>=0 ; i--){
			System.out.print("arr1=" + arr1[i] + "\t");
		}

		int arr2[] = new int[]{2,3,4,5,6};

		//   arr2         
		int arrNew[] = new int[arr2.length];

		//  arr(    )      arrNew (     )
		for (int i= arr2.length - 1 ,j=0; i>=0  ; i-- , j++){ //i arr2      , j  arrNew   
			arrNew[j] = arr2[i];
		}

		System.out.println("         (     i,j)");
		for (int i = 0; i < arrNew.length ; i++ ) {
			System.out.print(arrNew[i] + "\t");
		}


	}
}


配列の追加


import java.util.Scanner;

public class ArrayTest5 {
	public static void main(String[] args) {

		//    
		/*
		1)	  :              ,       。。
		2)	          
		3)	     ,         
		4)	                   ,    ,    ?y/n
			

		  :
		1.      int arr1[] = {1,23,54,56,34};
		2.	         1     int arrNew[] = new int[arr1.length + 1]
		3.                
		4.        addScores    arrNew     arrNew[arrNew.length - 1] = addScores
		*/
		
		Scanner sc = new Scanner(System.in);
		int arr1[] = {1,23,54,56,34}; //   

		
		char key = ' ';  //  
		int addScore;  //     
		do{
			System.out.println("      ");
			key = sc.next().charAt(0);


			if (key == 'y'){  //  

				System.out.println("      :");
				addScore =  sc.nextInt();

				int arrNew[] = new int[arr1.length + 1]; //     

				for (int i =0; i< arr1.length ; i++ ){ //   arrNew
				arrNew[i] = arr1[i];   //  
				}
				arrNew[arrNew.length - 1] = addScore;  //       
			
				arr1 = arrNew;
			}

			

			

		}while (key != 'n');
		

		//       
		for (int j=0; j<arr1.length ; j++ ){
			System.out.print("arr1[" + j +  "]=" + arr1[j] + "\t");
		}

		//              
		 int arr1[] = {1,23,54,56,34};  //    

		 int arrNew[] = new int[arr1.length +1]; //      

		int addScore = 90; //      
		 for (int i=0; i< arr1.length ; i++ ){ //             
			 arrNew[i] = arr1[i];

		 }
		 arrNew[arrNew.length -1] = addScore; //    
			
		//      ,   ,  scoresNew    scores
 		arr1 = arrNew;

		//  
		for( int i = 0 ; i < arrNew.length; i++) {
		System.out.print(arrNew[i] + "\t");
		}


	}
}


配列指定位置追加要素



public class ArrayTest6 {
	public static void main(String[] args) {

		//          
		//  :              (      )

		int arr1[] = {1,2,3,4,5};
		// index = 1,   addNum = 100;

		/*
		  :
		1.         ,   int arrNew[] = new int[arr1.length + 1];
		2.    1            ,         ,    1   
		3.  arrNew[] ={1,2,3,4,5,0};
		4.    arrNew[] ={1,2,2,3,4,5};
		5.          index = 1 
		*/
		int arrNew[] = new int[arr1.length + 1];
		int index = 1;  //      
		int addNum = 100;  //    


		for (int i =0;i<arr1.length ; i++ ){
			arrNew[i] = arr1[i];  // arr1     
		}


		//    ,    arrNew.length -2,      1
		for (int i = arrNew.length-2; i>=index; i-- ){
				arrNew[i + 1] = arrNew[i];
		}

		//           
		arrNew[1] = addNum;

		
		//  
		for( int i = 0 ; i < arrNew.length; i++) {
		System.out.print(arrNew[i] + "\t");
		}

		/*
		      
		         arr2 ,   arr1.length + 1
		         arr2
		 arr2           arr2.length-2 ,    index=1
		            arr2【index】= 100;
		*/

		//               

		/*
		  :
		       ,  arr1.length + 1     {0,0,0,0,0,0}
		           ,  index = 1        {1,0,2,3,4,5}
		 index=1                                 {1,100,2,3,4,5}
			
		*/

		System.out.println();

		int arr[] = {1,2,3,4,5};
		int arrNew1[] = new int[arr.length + 1];
		int index1 = 2;

		int addNum1 = 110;
		
		for (int i =0,j=0; i<arrNew1.length ; i++ ){
			if (i != index1){
				arrNew1[i] = arr[j];
				j++;
			}
		}


		//for( int i = 0 ; i < arrNew1.length; i++) {
		//System.out.print(arrNew1[i] + "\t");
		//}


		arrNew1[index1] = addNum1;

		//  

		for( int i = 0 ; i < arrNew1.length; i++) {
		System.out.print(arrNew1[i] + "\t");
		}
	
	}
}


バブルソート


public class  ArrayTest7{
	public static void main(String[] args) {
		//    
		/*
		arr = {72,21,89,16}
		  :1            ,         
		     ,          
			     :{21,72,89,16} 
			     :{21,72,89,16} 
			     :{21,72,16,89} 

		     :                 
			     :{21,72,16,89}   21   32  
			     :{21,16,72,89}   72  56  
		
		     :             
		   :{16,21,72,89}   21  16  
		*/

		//    
		
		int arr[] = {72,21,89,16};
		int temp = 0; //    

		for (int i= 0; i< arr.length -1;  i++){   //            
			for (int j =  0; j<arr.length - 1 - i; j++){  //              3,2,1
				//    
				if (arr[j] > arr[j + 1]){
					temp = arr[j];
					arr[j] = arr[j+1]  ;
					arr[j+1]  = temp;
				}
			}
		}

		for (int j =0; j<arr.length ; j++ ){
			System.out.print(arr[j] + "\t");
		}


		//   :
		/*
		int arr[] = {72,21,89,16};
		int temp = 0; //    
		for (int i = 0; i <3 ; i++ ){

			//    
			if (arr[i] > arr[i + 1]){
				temp = arr[i];
				arr[i] = arr[i+1]  ;
				arr[i+1]  = temp;
			}
		}
		for (int j =0; j arr[i + 1]){
				temp = arr[i];
				arr[i] = arr[i+1]  ;
				arr[i+1]  = temp;
			}
		}
		for (int j =0; j arr[i + 1]){
				temp = arr[i];
				arr[i] = arr[i+1]  ;
				arr[i+1]  = temp;
			}
		}
		for (int j =0; j
	
	}
}


配列検索


public class  ArrayTest8{
	public static void main(String[] args) {

		//    
		/*
		     :    、    、    、    
	    :            ,            
	【    】   :      ,     ,      。[    ]
		
		
		  :    ,           name,  index    
			 name            ,     ,   
		*/
		/*
		String arr[] = {"    ","    ","    ","    ","    ","    ","    "};

		int index = -1;
		String name = "    ";


		for (int i =0; i 
		String arr[] = {"    ","    ","    ","    ","    ","    ","    "};

		/*
		        

		    int       
		                           (     ,  )
		*/
		int index = -1; //   0  
		int count = 0;
		String name = "    ";
		
		int arrdex[] = new int[arr.length];

		for (int i=0; i< arr.length ; i++ ){
			//  
			if (name.equals(arr[i])){
				System.out.println("   ");
				index = i; //    
				arrdex[count++] = i; //count        。i              
			}
		}
		for (int i = 0; i< arrdex.length ; i++ ){
			System.out.println("      :" + name + "   " + arrdex[i]);
		}
		/*
		   
		      :       1
		      :       3
		      :       4
		      :       6
		      :       0
		      :       0
		      :       0
		     0   ,                ,        
		  
		*/
		for (int i = 0; i< count ; i++ ){
			System.out.println("      :" + name + "   " + arrdex[i]);
		}
	}
}