Skip to content

Commit 467b917

Browse files
Improved files and folders name conventions and moved lost files to Misc folder
1 parent 2128c7a commit 467b917

27 files changed

+525
-525
lines changed
File renamed without changes.
File renamed without changes.
Lines changed: 141 additions & 141 deletions
Original file line numberDiff line numberDiff line change
@@ -1,141 +1,141 @@
1-
2-
3-
import java.util.ArrayList;
4-
import java.util.LinkedList;
5-
6-
public class HashMap<K,V> {
7-
public class hmnodes{ //HashMap nodes
8-
K key;
9-
V value;
10-
}
11-
12-
private int size=0; //size of hashmap
13-
private LinkedList<hmnodes> buckets[]; //array of addresses of list
14-
15-
public HashMap(){
16-
buckets=new LinkedList[4]; //initially create bucket of any size
17-
for(int i=0;i<4;i++)
18-
buckets[i]=new LinkedList<>();
19-
}
20-
21-
public void put(K key,V value) throws Exception{
22-
int bi=bucketIndex(key); //find the index,the new key will be inserted in linklist at that index
23-
int fountAt=find(bi,key); //check if key already exists or not
24-
if(fountAt==-1){
25-
hmnodes temp=new hmnodes(); //if doesn't exist create new node and insert
26-
temp.key=key;
27-
temp.value=value;
28-
buckets[bi].addLast(temp);
29-
this.size++;
30-
}else{
31-
buckets[bi].get(fountAt).value=value;//if already exist modify the value
32-
}
33-
34-
double lambda = (this.size*1.0)/this.buckets.length;
35-
if(lambda>2.0){
36-
rehash(); //rehashing function which will increase the size of bucket as soon as lambda exceeds 2.0
37-
}
38-
39-
return;
40-
}
41-
42-
43-
public V get(K key) throws Exception{
44-
int bi=bucketIndex(key);
45-
int fountAt=find(bi,key);
46-
if(fountAt==-1){
47-
return null;
48-
}else{
49-
return buckets[bi].get(fountAt).value;
50-
}
51-
}
52-
53-
public V remove(K key) throws Exception{
54-
int bi=bucketIndex(key);
55-
int fountAt=find(bi,key);
56-
if(fountAt==-1){
57-
return null;
58-
}else{
59-
this.size--;
60-
return buckets[bi].remove(fountAt).value;
61-
}
62-
}
63-
64-
public boolean containskey(K key) throws Exception{
65-
int bi=bucketIndex(key);
66-
int fountAt=find(bi,key);
67-
if(fountAt==-1){
68-
return false;
69-
}else{
70-
return true;
71-
}
72-
}
73-
74-
public int size(){
75-
return this.size;
76-
}
77-
78-
79-
public boolean isempty(){
80-
return this.size==0;
81-
}
82-
83-
public ArrayList<K> keyset() throws Exception{
84-
ArrayList<K> arr=new ArrayList<>();
85-
for(int i=0;i<buckets.length;i++){
86-
for(int j=0;j<buckets[i].size();j++){
87-
arr.add(buckets[i].get(j).key);
88-
}
89-
}
90-
return arr;
91-
}
92-
93-
public ArrayList<V> valueset() throws Exception{
94-
ArrayList<V> arr=new ArrayList<>();
95-
for(int i=0;i<buckets.length;i++){
96-
for(int j=0;j<buckets[i].size();j++){
97-
arr.add(buckets[i].get(j).value);
98-
}
99-
}
100-
return arr;
101-
}
102-
103-
public void display() throws Exception{
104-
for(int i=0;i<buckets.length;i++){
105-
System.out.print("Bucket: "+i+" ");
106-
for(int j=0;j<buckets[i].size();j++){
107-
hmnodes temp=buckets[i].get(j);
108-
System.out.print("["+temp.key+"->"+temp.value+"]");
109-
}
110-
System.out.println();
111-
}
112-
}
113-
114-
public int find(int bi,K key) throws Exception{
115-
for(int i=0;i<buckets[bi].size();i++){
116-
if(key.equals(buckets[bi].get(i).key))
117-
return i;
118-
}
119-
return -1;
120-
}
121-
122-
public int bucketIndex(K key) throws Exception{
123-
int bi=key.hashCode();
124-
return Math.abs(bi%buckets.length);
125-
}
126-
127-
private void rehash() throws Exception{
128-
LinkedList<hmnodes> ob[]= buckets;
129-
buckets=new LinkedList[ob.length*2];
130-
for(int i=0;i<ob.length*2;i++)
131-
buckets[i]=new LinkedList<>();
132-
133-
size = 0;
134-
for(int i=0;i<ob.length;i++){
135-
for(int j=0;j<ob[i].size();j++){
136-
put(ob[i].get(j).key,ob[i].get(j).value);
137-
}
138-
}
139-
140-
}
141-
}
1+
2+
3+
import java.util.ArrayList;
4+
import java.util.LinkedList;
5+
6+
public class HashMap<K,V> {
7+
public class hmnodes{ //HashMap nodes
8+
K key;
9+
V value;
10+
}
11+
12+
private int size=0; //size of hashmap
13+
private LinkedList<hmnodes> buckets[]; //array of addresses of list
14+
15+
public HashMap(){
16+
buckets=new LinkedList[4]; //initially create bucket of any size
17+
for(int i=0;i<4;i++)
18+
buckets[i]=new LinkedList<>();
19+
}
20+
21+
public void put(K key,V value) throws Exception{
22+
int bi=bucketIndex(key); //find the index,the new key will be inserted in linklist at that index
23+
int fountAt=find(bi,key); //check if key already exists or not
24+
if(fountAt==-1){
25+
hmnodes temp=new hmnodes(); //if doesn't exist create new node and insert
26+
temp.key=key;
27+
temp.value=value;
28+
buckets[bi].addLast(temp);
29+
this.size++;
30+
}else{
31+
buckets[bi].get(fountAt).value=value;//if already exist modify the value
32+
}
33+
34+
double lambda = (this.size*1.0)/this.buckets.length;
35+
if(lambda>2.0){
36+
rehash(); //rehashing function which will increase the size of bucket as soon as lambda exceeds 2.0
37+
}
38+
39+
return;
40+
}
41+
42+
43+
public V get(K key) throws Exception{
44+
int bi=bucketIndex(key);
45+
int fountAt=find(bi,key);
46+
if(fountAt==-1){
47+
return null;
48+
}else{
49+
return buckets[bi].get(fountAt).value;
50+
}
51+
}
52+
53+
public V remove(K key) throws Exception{
54+
int bi=bucketIndex(key);
55+
int fountAt=find(bi,key);
56+
if(fountAt==-1){
57+
return null;
58+
}else{
59+
this.size--;
60+
return buckets[bi].remove(fountAt).value;
61+
}
62+
}
63+
64+
public boolean containskey(K key) throws Exception{
65+
int bi=bucketIndex(key);
66+
int fountAt=find(bi,key);
67+
if(fountAt==-1){
68+
return false;
69+
}else{
70+
return true;
71+
}
72+
}
73+
74+
public int size(){
75+
return this.size;
76+
}
77+
78+
79+
public boolean isempty(){
80+
return this.size==0;
81+
}
82+
83+
public ArrayList<K> keyset() throws Exception{
84+
ArrayList<K> arr=new ArrayList<>();
85+
for(int i=0;i<buckets.length;i++){
86+
for(int j=0;j<buckets[i].size();j++){
87+
arr.add(buckets[i].get(j).key);
88+
}
89+
}
90+
return arr;
91+
}
92+
93+
public ArrayList<V> valueset() throws Exception{
94+
ArrayList<V> arr=new ArrayList<>();
95+
for(int i=0;i<buckets.length;i++){
96+
for(int j=0;j<buckets[i].size();j++){
97+
arr.add(buckets[i].get(j).value);
98+
}
99+
}
100+
return arr;
101+
}
102+
103+
public void display() throws Exception{
104+
for(int i=0;i<buckets.length;i++){
105+
System.out.print("Bucket: "+i+" ");
106+
for(int j=0;j<buckets[i].size();j++){
107+
hmnodes temp=buckets[i].get(j);
108+
System.out.print("["+temp.key+"->"+temp.value+"]");
109+
}
110+
System.out.println();
111+
}
112+
}
113+
114+
public int find(int bi,K key) throws Exception{
115+
for(int i=0;i<buckets[bi].size();i++){
116+
if(key.equals(buckets[bi].get(i).key))
117+
return i;
118+
}
119+
return -1;
120+
}
121+
122+
public int bucketIndex(K key) throws Exception{
123+
int bi=key.hashCode();
124+
return Math.abs(bi%buckets.length);
125+
}
126+
127+
private void rehash() throws Exception{
128+
LinkedList<hmnodes> ob[]= buckets;
129+
buckets=new LinkedList[ob.length*2];
130+
for(int i=0;i<ob.length*2;i++)
131+
buckets[i]=new LinkedList<>();
132+
133+
size = 0;
134+
for(int i=0;i<ob.length;i++){
135+
for(int j=0;j<ob[i].size();j++){
136+
put(ob[i].get(j).key,ob[i].get(j).value);
137+
}
138+
}
139+
140+
}
141+
}
File renamed without changes.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy