Accessing variable from different methods (Java)

another question to put out there. I was working on an assignment to create hash functions and all that jazz, and i have stumbled across a small problem. `Line 35:21, where it reads arrpos += prearrpo & ______,` in my head works... What im trying to do is access `arr.length` from the `HashTable()` method. I've read around, suggestions with needing to creat an object of size arr.length; however in my mind, this seems overly complicated- Is there another way i can access the variable in the HashTable method, but inside the insert method? Another not so important question involves the giant block of `if()` statements in the letter(`char c`) class; im certain there must be a shorter way of doing this... I would have initially used the ascii values; but the specifications were quite particular about using the values 1-26 for lower/upper case letters- Thanks import java.io.*; public class HashTable { public HashTable() { //Create an array of size 101 String arr[] = new String[101]; //System.out.println("Size1: "); } public HashTable(int tsize) { int size = 2 * tsize; //System.out.println("Size: " + size); boolean isPrime = checkPrime(size); //System.out.println("IsPrime: " + isPrime); while (isPrime == false) { //System.out.println("Size: " + size); size++; isPrime = checkPrime(size); } //System.out.println("Size: " + size); String arr[] = new String[size]; } public boolean insert(String line) { String str = line; char[] ch = str.toCharArray(); int slen = str.length(); int arrpos = 0; int hash = slen; for (int i = 0; i < slen; i++) { double prearrpo = letter(ch[i]) * Math.pow(32, (hash - 1)); arrpos += prearrpo % arr.length(); hash--; } System.out.println(arrpos); System.out.println("array size:"); System.out.println(); return false; } private int letter(char c) { char ch = c; if (ch == 'A' || ch == 'a') { return 1; } if (ch == 'B' || ch == 'b') { return 2; } if (ch == 'C' || ch == 'c') { return 3; } if (ch == 'D' || ch == 'd') { return 4; } if (ch == 'E' || ch == 'e') { return 5; } if (ch == 'F' || ch == 'f') { return 6; } if (ch == 'G' || ch == 'g') { return 7; } if (ch == 'H' || ch == 'h') { return 8; } if (ch == 'I' || ch == 'i') { return 9; } if (ch == 'J' || ch == 'j') { return 10; } if (ch == 'K' || ch == 'k') { return 11; } if (ch == 'L' || ch == 'l') { return 12; } if (ch == 'M' || ch == 'm') { return 13; } if (ch == 'N' || ch == 'n') { return 14; } if (ch == 'O' || ch == 'o') { return 15; } if (ch == 'P' || ch == 'p') { return 16; } if (ch == 'Q' || ch == 'q') { return 17; } if (ch == 'R' || ch == 'r') { return 18; } if (ch == 'S' || ch == 's') { return 19; } if (ch == 'T' || ch == 't') { return 20; } if (ch == 'U' || ch == 'u') { return 21; } if (ch == 'V' || ch == 'v') { return 22; } if (ch == 'W' || ch == 'w') { return 23; } if (ch == 'X' || ch == 'x') { return 24; } if (ch == 'Y' || ch == 'y') { return 25; } if (ch == 'Z' || ch == 'z') { return 26; } return 0; } public boolean lookUp(String string) { // return false; } public String getNum() { // return null; } public int length() { return 0; } private static boolean checkPrime(int size) { if (size % 2 == 0) { return false; } double c = Math.sqrt(size); for (int i = 3; i < c; i += 2) { if (size % i == 0) { return false; } } return true; } }
Regarding your letter method: stackoverflow.com/questions/4262567/convert-letter-to-digits

以上就是Accessing variable from different methods (Java)的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » JavaScript 答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏