JAVA数据结构(大二应该会学吧)作业

数组

在这里插入图片描述
数组遍历,没想到还有这种方法
格式for(数据类型:x:函数名)
打印x

在这里插入图片描述
在这里插入图片描述
#JCF

在这里插入图片描述
JCF主要数据结构 :列表,集合,映射

List在这里插入图片描述

ArrayList
在这里插入图片描述

LinkedList:经常改变的数组
在这里插入图片描述

Vector:我觉得没必要用,因为我对他也懵逼
在这里插入图片描述

在这里插入图片描述
数组同步:我的理解是两个数组一起遍历。欢迎指正
ArrayListTest,代码解释
在这里插入图片描述
牵一发而动全身
LinkedListTest

在这里插入图片描述

集合

可以理解为int这种
在这里插入图片描述

在这里插入图片描述
HashSet中的方法
在这里插入图片描述
LinkedHashSet继承HashSet
在这里插入图片描述
TreeSet
在这里插入图片描述

在这里插入图片描述
这方面还是没看懂,要抽空复习!!!!
重点:不同Set判定元素重复的原则判断元素重复使用equals()。而不是==。
**HashSet,无序,LinkedHashSet,按照输入顺序,TreeSet,按照大小顺序
在这里插入图片描述
很神奇,Object()算的两个cat(4)不一样
注:若是要改写equals,hashcode,必须加上String,三位一体
在这里插入图片描述
!!!!

映射

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
工具类
在这里插入图片描述
背下来
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

作业

1请完成汇率和金额排序程序。(100分)
题目内容:

在国际机场,我们会发现有多个货币兑换的窗口,这是由于各国货币的单位价值是不一样的。下面列出了某日国际货币的汇率表(相对于100人民币的各国货币值)。

货币

CNY

HKD

USD

EUR

汇率

100

118

15

13

例如,100元人民币可以兑换118香港币。请利用继承机制与Comparable接口实现不同数目货币对象价值的排序。下面给出了程序的基本框架,请给出相关的函数实现。(假设所有的输入数值和比较都是用整数)

import java.util.Arrays;

import java.util.Scanner;

class Currency {

private String name;        //货币名称

private int originalValue;  //原始值

private int value;          //转换为人民币后的值



public static String[] CURRENCY_NAME = { "CNY", "HKD", "USD", "EUR" };

public static int[] CURRENCY_RATIO = { 100, 118, 15, 13 };



public String getName() {

	return name;

}

public void setName(String name) {

	this.name = name;

}



public int getOriginalValue() {

	return originalValue;

}

public void setOriginalValue(int originalValue) {

	this.originalValue = originalValue;

}



public int getValue() {

	return value;

}

public void setValue(int value) {

	this.value = value;

}

}

class HKD extends Currency implements Comparable {

// 实现你的构造函数与Comparable中的接口

}

class USD extends Currency implements Comparable {

// 实现你的构造函数与Comparable中的接口	

}

class EUR extends Currency implements Comparable {

// 实现你的构造函数与Comparable中的接口	

}

public class Main {

public static void main(String[] args) {

	Currency[] cs = new Currency[3];

	//初始化

	Scanner sc = new Scanner(System.in);

            //利用hasNextXXX()判断是否还有下一输入项

            int a = 0;

            int b = 0;

            int c = 0;

            if (sc.hasNext()) {

                a = sc.nextInt();

                cs[0] = new HKD(a);

            }



            if (sc.hasNext()) {

                b = sc.nextInt();

                cs[1] = new USD(b);

            }

    

            if (sc.hasNext()) {

                c = sc.nextInt();

                cs[2] = new EUR(c);

            }

	

	//初始化结束

	

	//请补充排序

	

	

	//请补充输出结果		

}

}

输入格式:

输入3个数字。

输出格式:

金额价值从小到大

输入样例:

100

100

100

输出样例:

HKD100

USD100

EUR100

时间限制:500ms内存限制:32000kb

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

class Currency {
    protected String name;
    private int originalValue;
    protected int value;

    public static String[] CURRENCY_NAME = { "CNY", "HKD", "USD", "EUR" };
    public static int[] CURRENCY_RATIO = { 100, 118, 15, 13 };

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getOriginalValue() {
        return originalValue;
    }
    public void setOriginalValue(int originalValue) {
        this.originalValue = originalValue;
    }
    public int getValue() {
        return value;
    }
    public void setValue(int value) {
        this.value = value;
    }

    public Currency(String name, int originalValue, int value) {
        super();
        this.name = name;
        this.originalValue = originalValue;
        this.value = value;
    }
    public Currency() {
        super();
    }

}

class HKD extends Currency implements Comparable<Currency> {

    public HKD(int a) {
        this.setName(CURRENCY_NAME[1]);
        this.setOriginalValue(a);
        int i= CURRENCY_RATIO[0];
        int j= CURRENCY_RATIO[1];
        float k=(float)i/j;//汇率
        a =(int)(a*k);
        this.setValue(a);
    }


    public int compareTo(Currency another) {
        int i = 0;
        if (i == 0) {
            return value- another.value;
        } else {
            return i;
        }
    }

}

class USD extends Currency implements Comparable<Currency> {

    public USD(int b) {

        this.setName(CURRENCY_NAME[2]);
        this.setOriginalValue(b);
        int i= CURRENCY_RATIO[0];
        int j= CURRENCY_RATIO[2];
        float k=(float)i/j;
        b =(int)(b*k);
        this.setValue(b);
    }

    public int compareTo(Currency another) {
        int i = 0;
        if (i == 0) {
            return value- another.value;
        } else {
            return i;
        }
    }


}

class EUR extends Currency implements Comparable<Currency> {
    public EUR(int c) {
        this.setName(CURRENCY_NAME[3]);
        this.setOriginalValue(c);
        int i= CURRENCY_RATIO[0];
        int j= CURRENCY_RATIO[3];
        float k=(float)i/j;
        c =(int)(c*k);
        this.setValue(c);
    }
    public int compareTo(Currency another) {
        int i = 0;
        if (i == 0) {
            return value- another.value;
        } else {
            return i;
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Currency[] cs = new Currency[3];
        Scanner sc = new Scanner(System.in);
        int a = 0;
        int b = 0;
        int c = 0;
        if (sc.hasNext()) {
            a = sc.nextInt();
            cs[0] = new HKD(a);
        }
        if (sc.hasNext()) {
            b = sc.nextInt();
            cs[1] = new USD(b);
        }
        if (sc.hasNext()) {
            c = sc.nextInt();
            cs[2] = new EUR(c);
        }
        Arrays.sort(cs);
        for (Currency currency : cs) {
            System.out.println(currency.getName()+currency.getOriginalValue());
        }
    }
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值