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

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

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() or subMap()

关于java - 如何在树集上搜索以找到大于或小于或不区分大小写的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43743731/

10-11 01:28