Java黑皮书课后题第7章:7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值。编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字
生活随笔
收集整理的這篇文章主要介紹了
Java黑皮书课后题第7章:7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值。编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
7.15(消除重復(fù))使用下面的方法頭編寫(xiě)方法,消除數(shù)組中重復(fù)出現(xiàn)的值。編寫(xiě)一個(gè)測(cè)試程序,讀取10個(gè)數(shù),調(diào)用該方法,并顯示以一個(gè)空格分隔的不同數(shù)字
- 題目
- 題目描述與運(yùn)行示例
- 破題
- 代碼
- 21.11.11更改代碼
題目
題目描述與運(yùn)行示例
7.15(消除重復(fù))使用下面的方法頭編寫(xiě)方法,消除數(shù)組中重復(fù)出現(xiàn)的值:
public static int[] eliminateDuplicates(int[] list)
編寫(xiě)一個(gè)測(cè)試程序,讀取10個(gè)數(shù),調(diào)用該方法,并顯示以一個(gè)空格分隔的不同數(shù)字
破題
代碼
import java.util.Scanner;public class Test7_15 { //1 2 3 2 1 6 3 4 5 2public static void main(String[] args) {// 1. 主方法從控制臺(tái)獲取數(shù)據(jù),賦值給數(shù)組Scanner input = new Scanner(System.in);System.out.print("Enter 10 numbers: ");int length0 = 10;int[] lst_input = new int[length0];for (int i = 0; i < length0; i++){lst_input[i] = input.nextInt();}// 2. 調(diào)用eliminateDuplicates方法,傳入剛剛賦值完的數(shù)組int[] lst_feedback = eliminateDuplicates(lst_input);// 4. 主方法按照格式要求輸出System.out.print("The distinct numbers are: ");int temp = 0;for (int i = 0; i < 10; i++){temp = lst_feedback[i];if (temp != 0 || (i == 0 && temp == 0)){System.out.print(temp + " ");}}}public static int[] eliminateDuplicates(int[] list){int length = 10;// 計(jì)算list最大值: maxint max = 0;for (int i = 0; i < length; i++){if (max < list[i])max = list[i];}// 聲明創(chuàng)建一個(gè)以list最大值+1為長(zhǎng)度的數(shù)組int[] lst_temp = new int[max + 1];// 原數(shù)組元素作為下標(biāo)代入新數(shù)組,并將元素置為1for (int i = 0; i < length; i++) {lst_temp[list[i]] = 1;}// 把接收的數(shù)組list進(jìn)行遍歷,list的元素代入lst_temp的下標(biāo)中// 將保留的list[i]用返回?cái)?shù)組接收int[] feedback = new int[10];int count = 0;for (int i = 0 ; i <= max ; i++){if (lst_temp[i] == 1){feedback[count] = i;count++;}}return feedback;} }21.11.11更改代碼
感謝 @MDeleter 糾錯(cuò),已經(jīng)將正確代碼附上
這版代碼糾正了輸入數(shù)字最大值大于10時(shí)數(shù)組越界和輸出很多0的問(wèn)題、糾正了當(dāng)輸入數(shù)字有0時(shí)無(wú)法處理0的問(wèn)題
總結(jié)
以上是生活随笔為你收集整理的Java黑皮书课后题第7章:7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值。编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java黑皮书课后题第7章:7.14(计
- 下一篇: Java黑皮书课后题第7章:7.16(执