大数据第11天

1.定义罪犯Criminal类,height(身高)/weight(体重)/blood(血型)/home(籍贯)属性。

重写hashcode和equals,使用四个属性的组合进行实现。

创建HashSet集合,里面存放20个Criminal对象,其中O型血2人,A型血3人,B型血4人,AB型血1人,其余血型不详。

注意:hashcode()方法实现时,要求身高、体重、和血型三个属性合成一个数字,实现两两比较的高效算法。

2.Map:

-----------

key(键) - value(值) :kv对.

创建HashMap,Person为key,Dog为value。

存放100元素,遍历map集合,两种方式。EntrySet + KeySet.

删除操作。remove();

1.

package it18zhang;

public class ArrayTools {
/*
 * 整数转换为字节数组;向右移位;截断后或运算
 * 
 */
//	public static void main(String[] args) {
		// TODO Auto-generated method stub

//	}
	public static byte[] int2Bytes(int i){
		/*
		 * 整数转换为字节数组
		 */

		byte[] bytes=new byte[4];
		bytes[0]=(byte) i;
		bytes[1]=(byte)(i>>8);
		bytes[2]=(byte)(i>>16);
		bytes[3]=(byte)(i>>24);
		return bytes;

	}

	/**
	 *字节转换为整数,向左移位
	 */
	public static int bytes2Int(byte[] bytes){
		int i0=bytes[3]<<24;
		int i1=(bytes[2]&0xFF)<<16;
		int i2=(bytes[1]&0xFF)<<8;
		int i3=(bytes[0]&0xFF)<<0;
		return i0|i1|i2|i3;

	}

}
package it18zhang;

public class ArrayTools {
/*
 * 整数转换为字节数组;向右移位;截断后或运算
 * 
 */
//	public static void main(String[] args) {
		// TODO Auto-generated method stub

//	}
	public static byte[] int2Bytes(int i){
		/*
		 * 整数转换为字节数组
		 */

		byte[] bytes=new byte[4];
		bytes[0]=(byte) i;
		bytes[1]=(byte)(i>>8);
		bytes[2]=(byte)(i>>16);
		bytes[3]=(byte)(i>>24);
		return bytes;

	}

	/**
	 *字节转换为整数,向左移位
	 */
	public static int bytes2Int(byte[] bytes){
		int i0=bytes[3]<<24;
		int i1=(bytes[2]&0xFF)<<16;
		int i2=(bytes[1]&0xFF)<<8;
		int i3=(bytes[0]&0xFF)<<0;
		return i0|i1|i2|i3;

	}

}
package it18zhang;

public class Criminal {
	private int height;
	private int weight;
	private String blood;
	private String home;

	public Criminal(int height,int weight,String blood){
		if(height <= 0){
			System.out.println("身高不能为负数");
			System.exit(-1);
		}else if(weight<=0){
			System.out.println("体重不能为负数");
			System.exit(-1);;
		}else if(blood == "A" && blood == "B" && blood =="AB" && blood =="O"){
			System.out.println("血型不正确");
			System.exit(-1);
		}else if(home==null){
			System.out.println("无家可归");
			System.exit(-1);
		}else{
			this.height=height;
			this.weight=weight;
			this.blood=blood;
			this.home=home;
		}
	}

	public int getHeight() {
		return height;
	}

	public void setHeight(int height) {
		this.height = height;
	}

	public int getWeight() {
		return weight;
	}

	public void setWeight(int weight) {
		this.weight = weight;
	}

	public String getBlood() {
		return blood;
	}

	public void setBlood(String blood) {
		this.blood = blood;
	}

	public String getHome() {
		return home;
	}

	public void setHome(String home) {
		this.home = home;
	}
	/*
	 * 重写hasecode方法
	 */
	public int hashCode(){
		int i0=0<<24;
		int i1=(ArrayTools.int2By)

	}

	public boolean equals(Object obj){
		if(obj==null)
			return false;
		if(obj==this)
			return true;
		if(obj.getClass()==Criminal.class)
		{
			Criminal c=(Criminal) obj;
			if(c.blood==this.blood && c.height==this.height && c.weight==this.weight && c.home==this.home){
				return true;
			}

		}
		return false;

	}

}

2.package it18zhang;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class HashMapTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Map<Person,Dog> map=new HashMap<Person,Dog>();
		List<Person> keys=new ArrayList<Person>();
		for(int i=0;i<100;i++){
			Person p=new Person("person"+i,i);
			map.put(p,new Dog("dog"+i,i));
			keys.add(p);
		}
		System.out.println("-----keySet-------");
		for(Person p : map.keySet()){
			System.out.println(p.getName()+"     "+map.get(p).getName());
		}
		System.out.println("----------EntrySet----------");
		for(Entry<Person,Dog> entry : map.entrySet()){
			System.out.println(entry.getKey().getName());

		}

	}

}
package it18zhang;

public class Person {
	private String name;
	private int age;
	public Person(String name,int age){
		super();
		this.age=age;
		this.name=name;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}

}
package it18zhang;

public class Dog {
		private String name;
		private int age;
		public Dog(String name,int age){
			super();
			this.name=name;
			this.age=age;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		public int getAge() {
			return age;
		}
		public void setAge(int age) {
			this.age = age;
		}

}
时间: 2025-01-11 00:04:50

大数据第11天的相关文章

大数据第11天内容

笔记: var1 == var2 ? ------------------------- stu.getClass() == Student.class ? //精准判断 Class clazz = Student.class stu instanceof Student ? //不是精准判断. Class clazz = List.class ; Class clazz2= ... ; clazz2 == clazz ? xxx.getClass() ; 成员变量 === 属性  === 字段

大数据、云计算系统顶级架构师课程学习视频

本课程为大数据.云计算系统架构师高级培训课程,授课模式为线上视频+直播答疑,本套教程2000多节课,里面的hadoop.spark都是新版本 6个阶段共31部分:1.Linux基础2.大数据基础Hadoop 2.X3.大数据仓库Hive4.大数据协作框架5.分布式数据库HBase6.Storm流计算从入门到精通之技术篇7.Scala语言从入门到精通8.内存计算框架Spark9.Spark深入剖析10.企业大数据平台11.驴妈妈旅游网大型离线数据电商分析平台12.Storm流计算之项目篇13.某团

专利:结构化大数据通信协议

发明专利技术 结构化大数据通信协议 发明人:樊永正 [email protected] 技术领域 结构化大数据通信协议是一种通信协议,也是一种让数据成为合格的结构化大数据的技术.结构化大数据通信协议也类似于ETL,ETL是处理现有的信息系统所产生的数据的问题,而结构化大数据通信协议是在设计信息系统之初就开始预防数据产生问题.ETL是为数据治病,结构化大数据通信协议是预防数据产生疾病.ETL是对现有技术所产生的问题进行小修小补,结构化大数据通信协议提出了新的数据处理方案.结构化大数据通信协议也是一

胖子哥的大数据之路(11)-我看Intel&amp;&amp;Cloudera的合作

一.引言 5月8日,作为受邀嘉宾,参加了Intel与Cloudera在北京中国大饭店新闻发布会,两家公司宣布战略合作,该消息成为继Intel宣布放弃大数据平台之后的另外一个热点新闻.对于Intel的放弃早在预料之中,对于Intel与Cloudera合作也在意料之中,但是没有想到的是居然那么快.壮士断腕的Intel反倒让我看出几分勇气可嘉来,Cloudera的顺势而为,也被我所认同,Intel借助Cloudera的技术能力,Cloudera借用Intel的商务平台,然后彼此合作真的就能够成功?换句

TIOBE 2014年11月编程语言排行榜:R受大数据影响跃至12位

TIOBE发布了11月份编程语言排行榜,前三甲依然为C.Java.Objective-C.受大数据影响,本月R语言上升至12位,上个月排名第15位,看其走势下个月有望进前十. 得益于大数据炒作,还有些语言包括Julia (#126), LabView (#63),Mathematica (#80), MATLAB (#24),S (#84),SAS (#21),SPSS (#104) 以及 Stata (#110)份额均有所上升. 编程语言排行榜TOP 20榜单: 前10名编程语言长期走势图: 

架构师实践日 11.9 南京站报名 | 技术大牛带你剖析大数据平台内部演进中的挑战与实践

从互联网时代到物联网时代,数据成为了企业的核心资产,挖掘数据价值成为了企业数据探索.技术应用的重中之重,甚至将影响到企业未来的发展和商业模式.但大数据体量大.多样性.价值密度低.速度快等特征,也给大数据的应用研发工作带来了不少挑战. ? ? ? ? 如何应对大数据不断生长的有机特征,处理超大规模的数据挖掘?? ? 如何改进现有的数据存储与管理技术,以满足大数据应用中的大体量数据和高速数据流实时处理需求?? ? 如何解决大数据技术中的核心问题?? ? 为助力企业大数据技术应用,切实分析企业面临的数

双11奇迹背后的大数据平台,不喧哗,自有声!

摘要: 大数据技术时代,企业争相数字化转型,任何成功项目的背后,离不开数据平台的支撑,更别说2135亿的大项目,这背后的数据平台要多健壮,多安全,多稳定? 00:02:05 成交额超100亿00:57:56 成交额超666亿01:47:26 成交额超1000亿15:49:39 成交额超1682亿22:28:37 成交额超2000亿 2018年双11新纪录2135亿 高速跳转的数字,不断刷新的状态,光缆中狂奔的代码,键盘上飞舞的手指- 新的记录绝非十年前的记录也非2017年的记录 是产品专家紧抓不

Laxcus大数据管理系统2.0(11)- 第九章 容错

第九章 容错 在当前,由于集群庞大的组织体系和复杂性,以及用户普遍要求低成本硬件,使得集群在运行过程中发生的错误概率,远远高于单一且性能稳定的小型机服务器,并且集群在运行过程中几乎是不允许停止的,这就更需要提供比单机环境复杂得多的错误管理方案.实际上,我们在产品设计.开发.运营的各个阶段,有相当大一部分精力,都是用来获取各种故障,和解决各种故障发生后的错误处理问题.对于这些错误处理,我们整体遵循这样一个思路来解决:首先由软件感知来发现和定位故障点,然后进行判断,如果属于软件可以解决的故障,那么通

在云计算资源池上自动部署业务应用的大数据平台组件开发实战

在云计算提供的分布式资源池构建能够自动部署业务应用的平台组件,该平台组件能够非常简易的被众多的并发终端使用,从而轻而易举的提供业务支持: 尤其是值得注意的是,如果有需要的话,我们的不同业务组件和业务本身可以发生数据和资源的共享,这对于资源和数据的复用,尤其是对于效率的提升是至关重要的.         课程介绍   基于“在资源池上自动部署业务应用的平台组件”的要求,课程包含Spark的架构设计.Spark编程模型.Spark内核框架源码剖析.Spark的广播变量与累加器.Shark的原理和使用