[英]I can't see substring method in java
我想用Java创建一个二进制搜索树。 键将是字符串,我将按字母顺序比较字符串。 我想将“键”转换为char数组,以便可以轻松编写一种方法来检查字母顺序。 不幸的是,除了equals()
, getClass()
, wait()
, toString()
, HashCode()
, Notify()
之外,我无法使用任何String方法。 我想使用substring
方法和toCharArray()
方法,例如stringName.substring()或stringName.toCharArray(),但我无法达到它们。 代码如下:
public class BST<V,String> {
public class Node <V,String> {
private Node right=null;
private Node left=null;
private String key;
private V value=null;
public Node(V value, String key){
this.key=key;
this.value=value;
}
}
Node root=null;
Node temp=null;
public void add(V value, String key){
if(isEmpty()){
root.value=value;
root.key=key;
}
else{
temp=root;
while(true){
if(key > temp.key){
if(temp.right==null){
Node node= new Node(value,key);
temp.right=node;
}
temp=temp.right;
}
else if(key < temp.key)
if(temp.left==null){
Node node= new Node(value,key);
temp.left=node;
}
temp=temp.left;
}
}
}
public boolean isEmpty(){
if(root.value==null){
return true;
}
else
return false;
}
}
通过声明:
public class BST<V,String>
...您在类上声明了两个通用参数; 一个命名为V
,另一个命名为String
。
您可能想要做的是省略键的通用类型,因为您知道它无论如何都将是String
:
public class BST<V>
您的错误是在public class BST<V,String>
的声明中。
您将String
作为通用参数,并且隐藏了实际的String类。 因此,您写成String
的东西实际上就是任何东西。
解决方案是只放弃通用参数String
,从而产生public class BST<V>
。 这样事情就可以了,因为String
将不再被隐藏。
请注意,eclipse确实对此提供了警告:
类型参数String隐藏类型String
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.