//已有一个升序排列的整数数组(含20个整数),要求从键盘输入一个整数后,将该数插入数组,并保持升序,输出该数组的数值验证程序的正确性。

package test_Array;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Scanner;

public class ArrayTest {
	
public static void main(String[] args){
	
		ArrayTest at = new ArrayTest();
		
		at.sortArray();
	//为了体现Java语言的封装特性,我们将主要的执行方法至于main()方法之外
	}

		Object sortArray(){
	        /*
		*这里我们首先创建一个数组并初始化
		*然后讲数组转化为集合后加入从键盘输入的数
		*最后将集合再转化为数组
		*然后调用Arrays.sort()方法在foreach中输出
		*
		*/
			
			int[] array = new int[]{-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9};
			//这里加入泛型机制,是程序安全性更高
			Collection<Integer> arrayList = new ArrayList<Integer>();
			
			System.out.println("Old array's length:"+array.length);
			
			for(int i=0;i<array.length;i++){
				
				System.out.print(" "+array[i]);
				
				arrayList.add(new Integer(array[i]));
			}
		
			System.out.print("\n"+"Please input a number:");
			
			arrayList.add(new Integer(input()));
			
			System.out.println("Current array'length:"+arrayList.size());
			
			Object[] now=arrayList.toArray();
			
			Arrays.sort(now);
			
			for(Object currentArray:now){
			
				System.out.print(" "+currentArray);
			}
			
			return arrayList;
	}

	static int input() {
	int input = (new Scanner(System.in)).nextInt();
	return input;
}



}