java开始到熟悉105-107

1,HashMap基本用法


 1 package list;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 /**
7 * 测试map的基本用法
8 * @author acer
9 *
10 */
11 public class Hashmap {
12 public static void main(String[] args)
13 {
14 Map map=new HashMap();
15 System.out.println(map.isEmpty());
16 map.put("日本汽车", new car("丰田"));
17 map.put("德国汽车", new car("奥迪"));
18 map.put("日本电器", new camera("canon"));
19 map.put("one", new Integer(1));
20 System.out.println(map.size());
21 car c=(car)map.get("日本汽车");
22 System.out.println(c.name);
23 System.out.println(map.containsKey("日本汽车"));
24 System.out.println(map.containsValue(new car("canon")));
25 System.out.println(map.containsValue(new Integer(1)));
26 map.remove("日本");
27 }
28 }
29 class car{
30 String name;
31 public car(String name)
32 {
33 this.name=name;
34 }
35 }
36 class camera{
37 String name;
38 public camera(String name)
39 {
40 this.name=name;
41 }
42 }

2.自己定义HashMap()(原始版)


 1 package list;
2 /**
3 * 实现较为粗糙的HashMap类
4 * Map:1,存放键值对2根据键对象找相应的值对象3键值不能重复
5 * @author acer
6 *
7 */
8 public class myHashMap {
9 arrmap[] arr=new arrmap[100];//此时暂时不考虑数组扩容问题,只实现一些基本的方法
10 int size;
11 public void put(Object key,Object value)
12 {
13 arrmap newarr=new arrmap(key,value);
14 //解决键值重复的问题
15 for(int i=0;i<size;i++)
16 {
17 if(arr[i].key.equals(key))
18 {
19 arr[i].value=value;
20 return;
21 }
22 }
23 arr[size++]=newarr;
24 }
25 public Object get(Object key)
26 {
27 for(int i=0;i<size;i++)
28 {
29 if(arr[i].key.equals(key))
30 return arr[i].value;
31 }
32 return null;

33 }
34 public boolean containsKey(Object key)
35 {
36 for(int i=0;i<size;i++)
37 {
38 if(arr[i].key.equals(key))
39 {
40 return true;
41 }
42 }
43 return false;
44 }
45 public boolean containsValue(Object value)
46 {
47 for(int i=0;i<size;i++)
48 {
49 if(arr[i].value.equals(value))
50 {
51 return true;
52 }
53 }
54 return false;
55 }
56 public static void main(String[] args)
57 {
58 myHashMap arr=new myHashMap();
59 arr.put("日本", new car("丰田"));
60 arr.put("德国", new car("奔驰"));
61 arr.put("美国", new car("福特"));
62 arr.put("日本电器", new camera("canon"));
63 car c=(car)arr.get("日本");
64 System.out.println(c.name);
65 camera d=(camera)arr.get("日本电器");
66 System.out.println(d.name);
67 System.out.println(arr.containsKey("日本"));
68 System.out.println(arr.containsValue(new car("丰田")));
69 arr.put("日本", new car("本田"));
70 c=(car)arr.get("日本");
71 System.out.println(c.name);
72 }
73 }
74 class arrmap
75 {
76 Object key;
77 Object value;
78 public arrmap(Object key,Object value)
79 {
80 this.key=key;
81 this.value=value;
82 }
83 }

3.升级版


 1 package list;
2
3 import java.util.LinkedList;
4
5 /**
6 * 完善粗糙的myhashmap
7 * 提高查询效率
8 * @author acer
9 *
10 */
11 public class myHashMapUpdate {
12 LinkedList[] arr=new LinkedList[999];
13 int size;
14 public void put(Object key,Object value)
15 {
16 arrmap arra=new arrmap(key,value);
17 int a=key.hashCode()%999;
18 if(arr[a]==null)
19 {
20 LinkedList list=new LinkedList();
21 arr[a]=list;
22 list.add(arra);
23 }
24 else
25 {
26 LinkedList list=arr[a];
27 for(int i=0;i<list.size();i++)
28 {
29 arrmap arra1=(arrmap)list.get(i);
30 if(arra1.key.equals(key))
31 {
32 arra1.value=value;
33 return;
34 }
35 }
36 arr[a].add(arra);
37 }
38 }
39 public Object get(Object key)
40 {
41 int a=key.hashCode()%999;
42 if(arr[a]!=null)
43 {
44 LinkedList list=arr[a];
45 for(int i=0;i<list.size();i++)
46 {
47 arrmap arra=(arrmap)list.get(i);
48 if(arra.key.equals(key))
49 {
50 return arra.value;
51 }
52 }
53 }
54 return null;
55 }
56 public static void main(String[] args)
57 {
58 myHashMapUpdate arr=new myHashMapUpdate();
59 arr.put("日本", new car("丰田"));
60 arr.put("日本", new car("本田"));
61 arr.put("德国", new car("奔驰"));
62 arr.put("美国", new car("福特"));
63 arr.put("日本电器", new camera("canon"));
64 car c=(car)arr.get("日本");
65 System.out.println(c.name);
66 }
67 }

java开始到熟悉105-107,布布扣,bubuko.com

时间: 2024-10-15 12:01:12

java开始到熟悉105-107的相关文章

java开始到熟悉66-69

本次内容:DateFormat类 1.DateFormat类 1 package array; 2 /** 3 * 时间和字符串之间的转化 4 */ 5 import java.text.DateFormat; 6 import java.text.ParseException; 7 import java.text.SimpleDateFormat; 8 import java.util.Date; 9 10 public class dateformat { 11 public static

java开始到熟悉70-71

本次内容:file类 1 package array; 2 /** 3 * file类 4 */ 5 import java.io.File; 6 import java.io.IOException; 7 8 public class file { 9 public static void main(String[] args) 10 { 11 File f1=new File("d:/tu/11.png");//文件路径名 12 File f2=new File("d:/

java开始到熟悉60

本次主题:多维数组 1,多维数组的初始话有三种:默认初始化.静态初始化.动态初始化. 这里只讲解静态初始化: 这里以二位数组为例,实际应用中,一维用得最多,二维次之,三维以及三维以上几乎很少使用,而且也比较复杂. 1 package array; 2 3 public class multiarray { 4 public static void main(String[] args){ 5 int[][] a={ 6 {1,2}, 7 {3,4,0,9}, 8 {5,6,7} 9 }; 10

java开始到熟悉61

本此主题:多维数组----矩阵运算 矩阵的运算规则是将对应位置的值进行运算,如上图所示. 1 package array; 2 3 public class Matrix { 4 /** 5 * 打印矩阵 6 * @param c 7 */ 8 public static void print(int[][] c) 9 { 10 int i,j; 11 for(i=0;i<c.length;i++) 12 { 13 for(j=0;j<c.length;j++) 14 { 15 System.

java开始到熟悉72-76

本次内容:异常机制 1.为什么需要异常 2.异常 3.error类 4.exception类 5.exception类中的unchecked exception 举例: 6.常用异常处理方法 a.try 注意:一个try语句块至少得带一个finally语句块或catch语句块 1 package array; 2 /** 3 * exception 4 * @author acer 5 * 6 */ 7 public class exception { 8 public static void

java开始到熟悉63-65

本次内容:java常用类 1.包装类 1 package array; 2 3 public class wrapperclass { 4 public static void main(String[] args) 5 { 6 Integer i=new Integer(100); 7 System.out.println(i); 8 System.out.println(Integer.MAX_VALUE); 9 System.out.println(Integer.MIN_VALUE);

java开始到熟悉62

(说明:昨天网络出现了问题导致昨天的没有按时上传,这篇算是昨天的,今天晚上照常上传今天的内容) 本次主题:数组拷贝.排序.二分法 1.数组拷贝 a.java.lang中System 类包含一些有用的类字段和方法.它不能被实例化. 在 System 类提供的设施中,有标准输入.标准输出和错误输出流:对外部定义的属性和环境变量的访问:加载文件和库的方法:还有快速复制数组的一部分的实用方法. public static void arraycopy(Object src, int srcPos, Ob

java开始到熟悉100-102

本次内容:arraylist() 1. 1 package list; 2 3 import java.util.ArrayList; 4 import java.util.Date; 5 import java.util.List; 6 7 /** 8 * 测试list的基本方法 9 * @author acer 10 * 11 */ 12 public class arraylist { 13 public static void main(String[] args) 14 { 15 Li

java开始到熟悉103-104

本次内容:linkedlist() 此次是承接上次arraylist(),自己实现linkedlist()(内容较少) 1 package list; 2 /** 3 * 自定义linkedlist类 4 * @author acer 5 * 6 */ 7 public class mylinkedlist { 8 private Node first; 9 private Node last; 10 private int size; 11 public void add(Object obj