我正在尝试创建内存数据库解决方案。 HashMapTreeSet。我知道如何使用 contains 搜索值,如果这是正常的数据库情况,这会更容易。但是,如果我尝试搜索不区分大小写的值或大于或小于的数值,在这种情况下我将如何处理?

这是我的姓氏方法,但它只是一个简单的包含,如果不区分大小写则找不到

case 4: 
    Scanner input4 = new Scanner(System.in); 
    System.out.println("Search Last Name "); 
    String retLn = input4.nextLine(); 
 
    if(employeeKey.containsKey(retLn)) 
    { 
          EmpManager searchedEmp = employeeKey.get(retLn); 
          System.out.println(searchedEmp); 
          System.out.println(""); 
    } 
 
    else 
    { 
          System.out.println("No Last Name Found"); 
          System.out.println(""); 
    } 

请您参考如下方法:

您可以将TreeMap与自定义Comparator结合使用。

当您想要不区分大小写的比较时:

new TreeMap<String,V>(String.CASE_INSENSITIVE_ORDER); 

当您想要基于整数的比较时:

new TreeMap<Integer,V>(Comparator.naturalOrder()); 

或者只使用默认比较器:

new TreeMap<Integer,V>(); 

要查找大于或小于某个值的所有条目,请使用 headMap()、tailMap() 或 subMap()


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!