集合框架-鍵盤錄入多個資料,以0結束,並在控制檯輸出最大值

ZHOU_VIP發表於2017-04-24

C:鍵盤錄入多個資料,以0結束,並在控制檯輸出最大值


package cn.itcast_03;

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

/*
 * 鍵盤錄入多個資料,以0結束,要求在控制檯輸出這多個資料中的最大值
 * 
 * 分析:
 * 		A:建立鍵盤錄入資料物件
 * 		B:鍵盤錄入多個資料,我們不知道多少個,所以用集合儲存
 * 		C:以0結束,這個簡單,只要鍵盤錄入的資料是0,我就不繼續錄入資料了
 * 		D:把集合轉成陣列
 * 		E:對陣列排序
 * 		F:獲取該陣列中的最大索引的值
 */
public class ArrayListDemo {
	public static void main(String[] args) {
		// 建立鍵盤錄入資料物件
		Scanner sc = new Scanner(System.in);

		// 鍵盤錄入多個資料,我們不知道多少個,所以用集合儲存
		ArrayList<Integer> array = new ArrayList<Integer>();

		// 以0結束,這個簡單,只要鍵盤錄入的資料是0,我就不繼續錄入資料了
		while (true) {
			System.out.println("請輸入資料:");
			int number = sc.nextInt();
			if (number != 0) {
				array.add(number);
			} else {
				break;
			}
		}

		// 把集合轉成陣列
		// public <T> T[] toArray(T[] a)
		Integer[] i = new Integer[array.size()];//陣列的長度應該和集合的元素一樣大
		array.toArray(i);

		// 對陣列排序
		// public static void sort(Object[] a)
		Arrays.sort(i);

		// 獲取該陣列中的最大索引的值
		System.out.println("陣列是:" + arrayToString(i) + "最大值是:"+ i[i.length - 1]);
	}
	
	//自己寫個字串拼接
	public static String arrayToString(Integer[] i) {
		
		StringBuilder sb = new StringBuilder();

		sb.append("[");
		for (int x = 0; x < i.length; x++) {
			if (x == i.length - 1) {
				sb.append(i[x]);
			} else {
				sb.append(i[x]).append(", ");
			}
		}
		sb.append("]");

		return sb.toString();
	}
}



相關文章