Java lesson17 homework
package lesson17;
/**1. 创建自定义类Triangle包含如下属性:
最小夹角 a(整型、单位度)
最大夹角 b(整型、单位度)
编写构造方法包含两个参数(夹角),并根据参数计算最小夹角和最大夹角赋值给a和b
使用HashSet存储Triangle,并且该HashSet不能存储相似三角形
即:HashSet<Triangle> set = new HashSet<Triangle>();
(1) 重写hashCode方法,该方法返回夹角a的值
(2) 重写equals方法,进一步判断另外一个夹角b是否一致,如果一致为相似三角形。
*
* @author LENOVO
*
*/
import java.util.HashSet;
import java.util.Iterator;
public class HashAngle {
HashSet<Triangle> hset=new HashSet<Triangle>();
public void hashTriangle(){
hset.add(new Triangle(30,50));
hset.add(new Triangle(40,80));
hset.add(new Triangle(40,80));
hset.add(new Triangle(80,40));
Iterator iterator=hset.iterator();
while(iterator.hasNext()){
System.out.println("a="+iterator.next()+"b="+iterator.next());
}
}
public static void main(String[] args) {
HashAngle hangle=new HashAngle();
hangle.hashTriangle();
}
}package lesson17;
/**1. 创建自定义类Triangle包含如下属性:
最小夹角 a(整型、单位度)
最大夹角 b(整型、单位度)
编写构造方法包含两个参数(夹角),并根据参数计算最小夹角和最大夹角赋值给a和b
使用HashSet存储Triangle,并且该HashSet不能存储相似三角形
即:HashSet<Triangle> set = new HashSet<Triangle>();
(1) 重写hashCode方法,该方法返回夹角a的值
(2) 重写equals方法,进一步判断另外一个夹角b是否一致,如果一致为相似三角形。
2. 给Triangle增加如下属性:
边长 x
边长 y
边长 z
尝试数学上的其他相似三角形定义来重写hashCode和equals方法,以达到判断三角形是否相似的目的。
*
* @author LENOVO
*
*/
public class Triangle {
int a;
int b;
}
//重写构造方法。。
public Triangle(int a,int b){
if(a>b){
this.a=a-b;
}
else {this.a=b-a;}
this.b=a+b;
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
// TODO Auto-generated method stub
return a;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if(obj==null){
return false;
}
if(obj==this){
return true;
}
if(obj instanceof Triangle){
Triangle anobj=(Triangle) obj;
if(anobj.b==this.b){
return true;
}
}
return false;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Triangle [a=" + a + ", b=" + b + "]";
}
/**
* @return the a
*/
public int getA() {
return a;
}
/**
* @param a the a to set
*/
public void setA(int a) {
this.a = a;
}
/**
* @return the b
*/
public int getB() {
return b;
}
/**
* @param b the b to set
*/
public void setB(int b) {
this.b = b;
}
}
2package lesson17;
/**1. 创建自定义类Triangle包含如下属性:
最小夹角 a(整型、单位度)
最大夹角 b(整型、单位度)
编写构造方法包含两个参数(夹角),并根据参数计算最小夹角和最大夹角赋值给a和b
使用HashSet存储Triangle,并且该HashSet不能存储相似三角形
即:HashSet<Triangle> set = new HashSet<Triangle>();
(1) 重写hashCode方法,该方法返回夹角a的值
(2) 重写equals方法,进一步判断另外一个夹角b是否一致,如果一致为相似三角形。
2. 给Triangle增加如下属性:
边长 x
边长 y
边长 z
尝试数学上的其他相似三角形定义来重写hashCode和equals方法,以达到判断三角形是否相似的目的。
*
* @author LENOVO
*
*/
public class Triangle {
double a;
double b;
double c;
double x;
double y;
double z;
public Triangle(double x, double y, double z) {
super();
this.a = x/y;
this.b = y/z;
this.c = z/x;
}
/*//重写构造方法。。
public Triangle(int a,int b){
if(a>b){
this.a=a-b;
}
else {this.a=b-a;}
this.b=a+b;
}*/
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
// TODO Auto-generated method stub
return (int) a;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if(obj==null){
return false;
}
if(obj==this){
return true;
}
if(obj instanceof Triangle){
Triangle anobj=(Triangle) obj;
if(anobj.b==this.b&&anobj.c==this.c){
return true;
}
}
return false;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Triangle [x=" + x + ", y=" + y + ", z=" + z + "]";
}
/**
* @return the a
*/
public double getA() {
return a;
}
/**
* @param a the a to set
*/
public void setA(int a) {
this.a = a;
}
/**
* @return the b
*/
public double getB() {
return b;
}
/**
* @param b the b to set
*/
public void setB(int b) {
this.b = b;
}
/**
* @return the x
*/
public double getX() {
return x;
}
/**
* @param x the x to set
*/
public void setX(double x) {
this.x = x;
}
/**
* @return the y
*/
public double getY() {
return y;
}
/**
* @param y the y to set
*/
public void setY(double y) {
this.y = y;
}
/**
* @return the z
*/
public double getZ() {
return z;
}
/**
* @param z the z to set
*/
public void setZ(double z) {
this.z = z;
}
/**
* @return the c
*/
public double getC() {
return c;
}
/**
* @param c the c to set
*/
public void setC(double c) {
this.c = c;
}
}
package lesson17;
/**1. 创建自定义类Triangle包含如下属性:
最小夹角 a(整型、单位度)
最大夹角 b(整型、单位度)
编写构造方法包含两个参数(夹角),并根据参数计算最小夹角和最大夹角赋值给a和b
使用HashSet存储Triangle,并且该HashSet不能存储相似三角形
即:HashSet<Triangle> set = new HashSet<Triangle>();
(1) 重写hashCode方法,该方法返回夹角a的值
(2) 重写equals方法,进一步判断另外一个夹角b是否一致,如果一致为相似三角形。
*
* @author LENOVO
*
*/
import java.util.HashSet;
import java.util.Iterator;
public class HashAngle {
HashSet<Triangle> hset=new HashSet<Triangle>();
public void hashTriangle(){
hset.add(new Triangle(3,5,6));
hset.add(new Triangle(4,8,6));
hset.add(new Triangle(4,8,6));
hset.add(new Triangle(8,4,6));
Iterator iterator=hset.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next()+" ");
}
}
public static void main(String[] args) {
HashAngle hangle=new HashAngle();
hangle.hashTriangle();
}
}package lesson17;
/**
* 1. 创建自定义类水果,要求包含水果名称、单价、产地等属性
使用HashSet存储水果,并提供equals方法和hashCode方法使用水果的名称属性判定水果是否相同,使用迭代器输出
* @author LENOVO
*
*/
public class Fruit {
String name;
double price;
String home;
public Fruit(String name, double price, String home) {
super();
this.name = name;
this.price = price;
this.home = home;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the price
*/
public double getPrice() {
return price;
}
/**
* @param price the price to set
*/
public void setPrice(double price) {
this.price = price;
}
/**
* @return the home
*/
public String getHome() {
return home;
}
/**
* @param home the home to set
*/
public void setHome(String home) {
this.home = home;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Fruit [name=" + name + ", price=" + price + ", home=" + home + "]";
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
// TODO Auto-generated method stub
return name.hashCode();
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if(obj==null){
return false;
}
if(obj==this){
return true;
}
if(obj instanceof Fruit){
Fruit anobj=(Fruit) obj;
if(anobj.name.equals(this.getName())){
return true;
}
}
return super.equals(obj);
}
}
package lesson17;
import java.util.HashSet;
import java.util.Iterator;
public class Main {
HashSet<Fruit> hSet=new HashSet<Fruit>();
public void main(){
hSet.add(new Fruit("苹果",2.5,"河南"));
hSet.add(new Fruit("苹果",3,"河南"));
hSet.add(new Fruit("橘子",5,"淮北"));
hSet.add(new Fruit("梨",6,"沈阳"));
Iterator iterator=hSet.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
public static void main(String[]args){
Main m=new Main();
m.main();
}
}
2. 简要说明Set和List在使用上有什么区别?
1>Set不保存重复的元素,List可以保存重复的元素。
2>Set输出时不按输入时的顺序输出,List按照输入时的顺序输出;。
3. 看课件学习TreeSet,向TreeSet中存储自定义类,会出现什么问题,如何解决?
当我们使用TreeSet存储自定义类时,需要在自定义类中重写compareTo方法,以提供比对形式,否则在TreeSet不能对用户自定义的类型进行正确的树状排序。
4. 简要说明TreeSet和HashSet的区别?
TreeSet是一个有序集合,其元素按照升序排列,默认是按照自然顺序排列,而HashSet 的顺序是按调用HashCode()方法,通过一定的比较来排列的顺序。
TreeSet虽然是有序的,但是并没有具体的索引,当插入一个新的数据元素的时候,TreeSet中原有的数据元素可能需要重新排序,所以TreeSet插入和删除数据元素的效率较低。
Java lesson17 homework的更多相关文章
- Java lesson08 Homework
1:1. 写一个类Param,声明四个成员变量a.b.c.d,分别赋予四种访问权限. (1)试验在同一个包中的另一个类里能访问哪几个变量? (2)试验在不同包中的另一个类里能访问哪几个变量? (3)试 ...
- Java程序设计学习笔记(一)
时间:2015-6-2 23:04 程序员,程序猿,程序媛,码农 ------------------------------------------------------- --Java的应用 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- homework for Java
public class Dog { private String name; private String color; private int age; public Dog(String nam ...
- java中scanner类的用法
在Eclipse中编写程序时,如果我们的变量是需要手动输入的时候,我们就可以用到scanner类了. Scanner类,这是一个用于扫描输入文本的新的实用程序.由于任何数据都必须通过同一模式的捕获组检 ...
- 2016-2017-2 《Java程序设计》预备作业1 总结
2016-2017-2 <Java程序设计>预备作业1 总结 预备作业01:你期望的师生关系是什么见https://edu.cnblogs.com/campus/besti/2016-20 ...
- java 写一个"HelloJavaWorld你好世界"输出到操作系统文件Hello.txt文件中
package com.beiwo.homework; import java.io.File; import java.io.FileOutputStream; import java.io.IOE ...
- Java冒泡随笔
package homework; import java.util.Scanner; public class ArraySort { /** * @param args */ public sta ...
- java经典题目
/***********Ryear.java begin********************/ import java.util.Scanner;public class Ryear { /** ...
随机推荐
- 如何在linux中发送邮件,使用163邮箱发信。
linux中,可以使用mail命令往外发送邮件,在使用前,只需要指定如下简单配置即可,这里演示用 163.com 邮箱发送至 qq.com 编辑 /etc/mail.rc,写入下方的参数 se ...
- 【MyBatis】【SQL】删除最快纪录诞生,从一千万条记录中删除八百万条仅用2分6秒
在 https://www.cnblogs.com/xiandedanteng/p/11669629.html 里我做个一个循环按时间查ID并删除之的程序,运行时间是4分7秒. 但是这个程序走了很多次 ...
- Going Deeper with Convolutions阅读摘要
论文链接:Going deeper with convolutions 代码下载: Abstract We propose a deep convolutional neural network ...
- linux如何离线加载docker镜像?
1. 在已经部署了镜像的机器上获取镜像 1.1 获取镜像名 docker images 1.2 打包选中对应的镜像 docker save <image_name> -o <imag ...
- nginx 反向代理实现负载均衡*理论
Nginx负载均衡集群介绍 负载均衡集群提供了一种廉价,有效,透明的方法,来扩展网络设备和服务器的负载,带宽和吞吐量,同时加强了网络数据处理能力,提高了网络的灵活性和可用性. 搭建负载均衡服务的需求: ...
- centos6里面装zabbix(二)
第一步: 如果这一步的时候有错误,那么修改php.ini(/usr/local/php/etc/这个目录下),然后重启php这个配置文件. 第二步: 第三步: 第四步: 第五步: 第六步:做到这一步的 ...
- php版本:实现过滤掉广告、色情、政治相关的敏感词
现在网络上还是很乱,尤其充斥着各种广告.色情.政治相关的内容,很明显这是不符合我们国家的法律的,所以为了一个产品能够健康长久的活下去,最好还是采用一定的策略过滤或者提醒用户不要发这种内容.不过说起来容 ...
- docker 搭建私有云盘 Seafile
缘起 现如今各种云存储服务其实挺多的,国外有经典的DropBox.Google Drive.微软的OneDrive等,国内也有可以免费使用的各种云. 那么为什么想要搭建私有云存储呢?主要是本着“自己的 ...
- JSTL优点
1. 在应用程序服务器之间提供了一致的接口,最大程序地提高了WEB应用在各应用服务器之间的移植. 2. 简化了JSP和WEB应用程序的开发.3. 以一种统一的方式减少了JSP中的scriptlet代码 ...
- [PySpark] Build R&D environment
开发环境 基本操作 Ref:Spark的环境搭建 一.启动集群 先启动hadoop,再启动spark,查看启动后的状态:http://node-master:8080 start-all.sh sta ...