java开始到熟悉105-107
1,HashMap基本用法
package list; import java.util.HashMap;
import java.util.Map; /**
* 测试map的基本用法
* @author acer
*
*/
public class Hashmap {
public static void main(String[] args)
{
Map map=new HashMap();
System.out.println(map.isEmpty());
map.put("日本汽车", new car("丰田"));
map.put("德国汽车", new car("奥迪"));
map.put("日本电器", new camera("canon"));
map.put("one", new Integer(1));
System.out.println(map.size());
car c=(car)map.get("日本汽车");
System.out.println(c.name);
System.out.println(map.containsKey("日本汽车"));
System.out.println(map.containsValue(new car("canon")));
System.out.println(map.containsValue(new Integer(1)));
map.remove("日本");
}
}
class car{
String name;
public car(String name)
{
this.name=name;
}
}
class camera{
String name;
public camera(String name)
{
this.name=name;
}
}
2.自己定义HashMap()(原始版)
package list;
/**
* 实现较为粗糙的HashMap类
* Map:1,存放键值对2根据键对象找相应的值对象3键值不能重复
* @author acer
*
*/
public class myHashMap {
arrmap[] arr=new arrmap[100];//此时暂时不考虑数组扩容问题,只实现一些基本的方法
int size;
public void put(Object key,Object value)
{
arrmap newarr=new arrmap(key,value);
//解决键值重复的问题
for(int i=0;i<size;i++)
{
if(arr[i].key.equals(key))
{
arr[i].value=value;
return;
}
}
arr[size++]=newarr;
}
public Object get(Object key)
{
for(int i=0;i<size;i++)
{
if(arr[i].key.equals(key))
return arr[i].value;
}
return null;
}
public boolean containsKey(Object key)
{
for(int i=0;i<size;i++)
{
if(arr[i].key.equals(key))
{
return true;
}
}
return false;
}
public boolean containsValue(Object value)
{
for(int i=0;i<size;i++)
{
if(arr[i].value.equals(value))
{
return true;
}
}
return false;
}
public static void main(String[] args)
{
myHashMap arr=new myHashMap();
arr.put("日本", new car("丰田"));
arr.put("德国", new car("奔驰"));
arr.put("美国", new car("福特"));
arr.put("日本电器", new camera("canon"));
car c=(car)arr.get("日本");
System.out.println(c.name);
camera d=(camera)arr.get("日本电器");
System.out.println(d.name);
System.out.println(arr.containsKey("日本"));
System.out.println(arr.containsValue(new car("丰田")));
arr.put("日本", new car("本田"));
c=(car)arr.get("日本");
System.out.println(c.name);
}
}
class arrmap
{
Object key;
Object value;
public arrmap(Object key,Object value)
{
this.key=key;
this.value=value;
}
}
3.升级版
package list; import java.util.LinkedList; /**
* 完善粗糙的myhashmap
* 提高查询效率
* @author acer
*
*/
public class myHashMapUpdate {
LinkedList[] arr=new LinkedList[999];
int size;
public void put(Object key,Object value)
{
arrmap arra=new arrmap(key,value);
int a=key.hashCode()%999;
if(arr[a]==null)
{
LinkedList list=new LinkedList();
arr[a]=list;
list.add(arra);
}
else
{
LinkedList list=arr[a];
for(int i=0;i<list.size();i++)
{
arrmap arra1=(arrmap)list.get(i);
if(arra1.key.equals(key))
{
arra1.value=value;
return;
}
}
arr[a].add(arra);
}
}
public Object get(Object key)
{
int a=key.hashCode()%999;
if(arr[a]!=null)
{
LinkedList list=arr[a];
for(int i=0;i<list.size();i++)
{
arrmap arra=(arrmap)list.get(i);
if(arra.key.equals(key))
{
return arra.value;
}
}
}
return null;
}
public static void main(String[] args)
{
myHashMapUpdate arr=new myHashMapUpdate();
arr.put("日本", new car("丰田"));
arr.put("日本", new car("本田"));
arr.put("德国", new car("奔驰"));
arr.put("美国", new car("福特"));
arr.put("日本电器", new camera("canon"));
car c=(car)arr.get("日本");
System.out.println(c.name);
}
}
java开始到熟悉105-107的更多相关文章
- 20165304实验一java开发环境熟悉
实验报告封面 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:李松杨 学号:20165304 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验时间:13:45 - 15:25 实 ...
- 20165320 实验一 java环境的熟悉
实验内容与步骤 一.java开发环境的熟悉 1.建立一个有关自己学号的目录 2.在当前文件下编译一个带包Hello.java文件 3.代码内容 package sq; import java.util ...
- java开始到熟悉100-102
本次内容:arraylist() 1. package list; import java.util.ArrayList; import java.util.Date; import java.uti ...
- [原创]java WEB学习笔记105:Spring学习---AOP介绍,相关概念,使用AOP,利用 方法签名 编写 AspectJ 切入点表达式
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- java基础:熟悉3种内部类的写法,重点匿名内部类的使用
一.内部类定义 内部类(nested classes),面向对象程序设计中,可以在一个类的内部定义另一个类.嵌套类分为两种,即静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类,也即 ...
- Java知多少(105)套接字(Socket)
网络应用模式主要有: 主机/终端模式:集中计算,集中管理: 客户机/服务器(Client/Server,简称C/S)模式:分布计算,分布管理: 浏览器/服务器模式:利用Internet跨平台. www ...
- Java基础知识强化105:打印数组的方法总结
1. 使用for循环打印数组. 2. 使用Arrays工具类,将数组转化为有序的List打印出来. 3. 使用Arrays工具类,使用Arrays.toString()输出数组内容. 上面三种方法打印 ...
- Android(java)学习笔记105:Map集合的遍历之键值对对象找键和值
package cn.itcast_01; import java.util.HashMap; import java.util.Map; import java.util.Set; /* * Map ...
- Android(java)学习笔记105:Android启动过程(转载)
转载路径为: http://blog.jobbole.com/67931/ 1. 关于Android启动过程的问题: 当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样 ...
随机推荐
- aiomysql inserting operation failed !
emotions: those days,i am using aiomysql(python3.5) to acess my database .But a 'strange' problem ma ...
- 2017"百度之星"程序设计大赛 - 复赛
Arithmetic of Bomb Accepts: 1050 Submissions: 1762 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- python操redis
Python操作redis python连接方式:点击 下面介绍详细使用 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redi ...
- iOS学习笔记48-Swift(八)反射
一.Swift反射 所谓反射就是可以动态获取类型.成员信息,在运行时可以调用方法.属性等行为的特性. 在使用OC开发时很少强调其反射概念,因为OC的Runtime要比其他语言中的反射强大的多.不过在S ...
- ie,360浏览器出现无法打开网页(包括本地html)的解决方法
有一天,编写网页照例打开chrome,ie,360等浏览器,发现ie,360均无法打开本地网页,输入百度,也无法打开,从没遇到过这种情况,通过百度,找了几种方法,没解决, 后来,看到有一种原因可能是浏 ...
- [LOJ#6002]「网络流 24 题」最小路径覆盖
[LOJ#6002]「网络流 24 题」最小路径覆盖 试题描述 给定有向图 G=(V,E).设 P 是 G 的一个简单路(顶点不相交)的集合.如果 V 中每个顶点恰好在 P 的一条路上,则称 P 是 ...
- mysql 游标的使用总结
一.游标的基本概念 游标:游标是一个存储在Mysql服务器上的数据库查询,它不是一条select语句,而是被该语句检索出来的结果集. 本人,学习游标中,曾遇到一个问题,循环总是最后多执行一次.下面分析 ...
- APUE 学习笔记(六) 进程控制
1. fork 创建新进程 fork创建的新进程称为子进程,fork函数调用一次,返回两次. 两次返回的唯一区别就是子进程的返回值是0,而父进程的返回值是新子进程的进程ID 在fork之后是父进程先执 ...
- 洛谷 P1131 选择客栈
题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均 ...
- 转 Python爬虫入门五之URLError异常处理
静觅 » Python爬虫入门五之URLError异常处理 1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的服务器 服务器不存在 在代码中, ...