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]);
}
}
}