當前位置:
首頁 > 最新 > Java基礎-day07-代碼題-自定義數據類型&ArrayList集合

Java基礎-day07-代碼題-自定義數據類型&ArrayList集合

Java基礎-day07-代碼題-自定義數據類型&ArrayList集合

1.飯店結賬程序. 定義菜品類,屬性為名稱,價格,數量. 集合中添加若干菜品對象. 遍歷集合,列印出集合中所有菜品名稱和消費總金額.

代碼實現:

package StudentJavaSEday07;

class Cai {

private String name;

private double price;

private int num = 1; // 數量,默認一份.

public Cai(String name, double price, int num) {

super();

this.name = name;

this.price = price;

this.num = num;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

public int getNum() {

return num;

}

public void setNum(int num) {

this.num = num;

}

}

package StudentJavaSEday07;

import java.util.ArrayList;

public class Test1 {

public static void main(String[] args) {

ArrayList al = new ArrayList();

Cai cai = new Cai("烤羊腿", 58, 4);

Cai cai2 = new Cai("皮蛋豆腐", 8, 1);

Cai cai3 = new Cai("烤板筋", 2, 10);

Cai cai4 = new Cai("可樂", 8, 1);

al.add(cai);

al.add(cai2);

al.add(cai3);

al.add(cai4);

double total = 0;

// 遍歷 集合

for (Cai c : al) {

// 列印

String name = c.getName();

int num = c.getNum();

// 計算 總價

// 獲取 每一個 菜的單價 . 單價 * 份數

total += c.getPrice() * num;

}

}

}

運行結果:

2.雙色球 彩票機選程序.

雙色球規則 : 一共 選 7 個號. 6個紅色 , 1 藍色的

紅色球1-33中選6個,號碼不能重複. 藍色球16選1,號碼不能重複.

紅色 1- 33

藍色 1- 16

列印出機選結果格式(前6個為紅球,最後一個為籃球,數字是隨機生成的,每次運行結果都不一樣) :

本期中獎號碼為:[7, 27, 25, 6, 4, 9, 12]

代碼實現:

package StudentJavaSEday07;

import java.util.ArrayList;

import java.util.Random;

public class Demo4 {

public static void main(String[] args) {

// 1.定義集合, 保存 最終結果 .

ArrayList result = new ArrayList();

// 2.開始選擇 .

Random random = new Random();

// 隨機生成 數字.

// 3.生成6個紅球並保存到集合中

while (result.size() < 6) {

int red_ball = random.nextInt(33) + 1;

// 保證唯一

if (!result.contains(red_ball)) {

result.add(red_ball);

}

}

// 4、再生成 1個藍色 的球 ,並添加到集合中

int blue_ball = random.nextInt(16) + 1;// 藍色球

result.add(blue_ball);

// 5、列印結果

}

}

運行結果:

3.編寫一個程序的模擬班級學生的成績庫, 包含多項成績,英語,數學,Java.

實現如下功能:

1.可以修改某個學生的某項分數.

2.可以列印全班同學成績

要求使用集合來完成.

代碼實現:

package StudentJavaSEday07;

class Student {

private double english;

private double math;

private double java;

private String name;

public Student() {

super();

}

public Student(String name, double english, double math, double java) {

super();

this.english = english;

this.math = math;

this.java = java;

this.name = name;

}

public double getEnglish() {

return english;

}

public void setEnglish(double english) {

this.english = english;

}

public double getMath() {

return math;

}

public void setMath(double math) {

this.math = math;

}

public double getJava() {

return java;

}

public void setJava(double java) {

this.java = java;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

package StudentJavaSEday07;

import java.util.ArrayList;

import java.util.Scanner;

public class Test2 {

public static void main(String[] args) {

ArrayList student_list = new ArrayList();

student_list.add(new Student("張三", 99, 90, 100));

student_list.add(new Student("李四", 89, 80, 100));

for (Student student : student_list) {

}

Scanner scanner = new Scanner(System.in);

// 請輸入學生姓名

String name = scanner.nextLine();

for (Student student : student_list) {

String n = student.getName();

if (n.equals(name)) {

// 可以繼續錄入, 修改

String kemu = scanner.nextLine();

double score = scanner.nextDouble();

// 根據不同的科目,修改不同的分數.

switch (kemu) {

case "數學":

student.setMath(score);

break;

case "英語":

student.setEnglish(score);

break;

case "java":

student.setJava(score);

break;

default:

return ;

}

return;

}

}

}

}

運行結果:

4.隨機點名器

a) 案例回顧

在全班同學中隨機的列印出一名同學名字。

共三個步驟:

1.存儲全班同學名字

2.列印全班同學每一個人的名字

3.在班級總人數範圍內,隨機產生一個隨機數索引,查找該隨機數索引所對應的同學名字

b) 重構內容分析

1:將原來的數組容器修改為集合容器

2:將原來的人名字元串修改為使用人類對象

c) 實現步驟

定義Person類

定義Person類,包含成員變數名稱、年齡、地址

存儲所有同學姓名

在main方法中ArrayList集合類型的變數並創建對象為變數賦值,再向集合中添加5個Person對象。

總覽全班同學姓名

遍歷集合,依次獲取每個Person對象,再獲取Person對象名稱列印。

隨機點名

通過隨機數類Random產生一個從0到集合長度的隨機索引。而該索引對應的Person對象的名稱屬性便是所求的隨機姓名。

代碼實現:

package StudentJavaSEday07;

/*

自定義類型 人類

屬性

姓名 String

年齡 int

性別 String

身高 double

是否熱愛java boolean

*/

public class Person {

//姓名

String name;

//年齡

int age;

//性別

String sex;

//身高

double height;

//是否喜歡java

boolean isLoveJava;

}

package StudentJavaSEday07;

//導入集合ArrayList

import java.util.ArrayList;

//導入Random

import java.util.Random;

public class RandomName

{

public static void main(String[] args)

{

//定義一個集合用來存儲所有人

ArrayList

list = new ArrayList

();

//向集合中添加人 創建Person對象 將Person添加到集合中

Person p = new Person();

p.name = "柳岩";

Person p2 = new Person();

p2.name = "唐嫣";

Person p3 = new Person();

p3.name = "金蓮";

list.add(p);

list.add(p2);

list.add(p3);

//遍歷集合,依次獲取每個人,列印每個人的名字

for(int i = 0 ;i < list.size();i++){

Person thisP = list.get(i);

}

//隨機點名

Random r = new Random();

//生成一個最大不超過集合最大索引的隨機數 0 - 集合最大索引的一個隨機數

int randomIndex = r.nextInt(list.size());

//依據隨機數得到集合中相對應的人

Person person = list.get(randomIndex);

}

}

運行結果:

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Java幫幫 的精彩文章:

TAG:Java幫幫 |