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的启动过程是怎么样 ...
随机推荐
- python递归函数、二分法、匿名函数、(sorted、map、filter内置函数应用)
#函数递归是一种特殊的函数嵌套调用,在调用一个函数的过程中,又直接或间接的调用该函数本身递归必须要有两个明确的阶段: 递推:一层一层递归调用下去,强调每进入下一层递归问题的规模都必须有所减少 回溯:递 ...
- 树状数组--前n项和;
树状数组是和线段树类似的数据结构,基本上树状数组可以做的线段树都可以做: 树状数组就是一个数组,在信息记录上有一些特点,以动态求前n项和为例:可以改变数组的某一个元素,求前n项和: 数组tree[ i ...
- mybatis读取oracle中blob
controller: byte[] blob = commonService.getPersonImage(bean.getIdCard()); String base64 = new String ...
- 在idea中部署远程Tomcat
实现效果:在idea中点击run时,自动将代码编译并上传.部署到远程服务器中 和传统的在本地服务器相比较的优势:1.节省开发者开发机的资源,省去了本地服务器的CPU.内存的占用.2.如果开发的程序为A ...
- SharePoint 2013 Custom MasterPage
<%@Master language="C#"%> <%@ Register Tagprefix="SharePoint" Namespace ...
- 应用node+express+mysql 实现简单的增删改查
记录下来备忘 1.准备好webstrom编辑器,编辑器调整字体大小等在file->settings->editor下设置 注册码 来源网上: 2017.2.27更新 选择“license ...
- iOS8下定位问题解决
项目是以前iOS7的,升级iOS8后,无法成功获取用户位置.后来才发现iOS8 使用定位需要在infoplist文件中加2个key,然后manager需要加一个方法,指定定位授权机制 在plist ...
- LeetCode OJ——Convert Sorted List to Binary Search Tree
http://oj.leetcode.com/problems/convert-sorted-list-to-binary-search-tree/ 将一个按照元素升序排列的链表转换成BST.根据自身 ...
- js中加“var”和不加“var”的区别,看完觉得这么多年js白学了
Javascript声明变量的时候,虽然用var关键字声明和不用关键字声明,很多时候运行并没有问题,但是这两种方式还是有区别的.可以正常运行的代码并不代表是合适的代码. var num = 1: 是在 ...
- vs-插件+配置
{ "window.zoomLevel": 0, "files.autoSave": "off", "editor.fontSiz ...