在Java TreeMap中查找元素的位置

2023年 8月 28日 74.4k 0

在Java TreeMap中查找元素的位置

在Java中,TreeMap类提供了一种以有序方式存储键值对的有效方法。有时候,我们可能需要找出TreeMap中特定元素的位置。在本文中,我们将探讨不同的方法来完成这个任务。我们将讨论语法、算法,并为每种方法提供可执行的代码示例。

语法

要在Java TreeMap中找到元素的位置,我们可以使用以下语法 -

int position = Collections.binarySearch(treeMap.values(), element);

登录后复制

语法解释

Collections.binarySearch()策略被用于对排序列表进行二分查找。在我们的情况下,我们将TreeMap的值传递给策略,并传递需要查找位置的组件。如果在列表中找到该组件,则策略返回组件的位置,否则返回一个负值。

方法一:使用binarySearch()

算法

  • 使用values()方法从TreeMap获取值。

  • 使用Collections.binarySearch()对值进行二分搜索。

  • 将结果存储在名为position的变量中。

  • 如果位置大于或等于0,则找到该元素。否则,它不在TreeMap中。

示例

import java.util.Collections;
import java.util.TreeMap;

public class TreeMapPositionFinder {
public static void main(String[] args) {
TreeMap treeMap = new TreeMap();
treeMap.put(1, "Apple");
treeMap.put(2, "Banana");
treeMap.put(3, "Orange");
treeMap.put(4, "Mango");

String element = "Banana";

int position = Collections.binarySearch(treeMap.values(), element);

if (position >= 0) {
System.out.println("Element found at position: " + (position + 1));
} else {
System.out.println("Element not found in the TreeMap.");
}
}
}

登录后复制

解释

在这种方法中,我们创建一个TreeMap,并用一些键值对填充它。然后,我们定义要查找的元素,本例中为"Banana"。使用Collections.binarySearch()方法在TreeMap的值中搜索元素。如果找到该元素,我们通过将位置变量加1来打印其位置。否则,我们显示该元素未显示在TreeMap中。

方法2:使用TreeMap的keySet()和get()方法

算法

  • 使用keySet()方法从TreeMap获取keySet。

  • 迭代遍历键。

  • 检查与每个键相关联的值是否等于我们要查找的元素。

  • 如果找到匹配项,则将对应的键存储在名为position的变量中。

  • 如果position不为空,则表示元素已找到。否则,它不在TreeMap中存在。

示例

import java.util.TreeMap;

public class TreeMapPositionFinder {
public static void main(String[] args) {
TreeMap treeMap = new TreeMap();
treeMap.put(1, "Apple");
treeMap.put(2, "Banana");
treeMap.put(3, "Orange");
treeMap.put(4, "Mango");

String element = "Banana";
Integer position = null;

for (Integer key : treeMap.keySet()) {
if (treeMap.get(key).equals(element)) {
position = key;
break;
}
}

if (position != null) {
System.out.println("Element found at position: " + position);
} else {
System.out.println("Element not found in the TreeMap.");
}
}
}

登录后复制

输出

Element found at position: 2

登录后复制登录后复制

解释

在这种方法中,我们再次创建一个TreeMap并用键值对填充它。我们描述了我们需要找到的组件,这种情况下是"Banana"。然后,我们使用for-each循环遍历键,并检查与每个键相关联的值是否与我们要查找的元素匹配。如果找到匹配项,我们将相应的键存储在位置变量中。最后,我们检查位置是否无效,以确定元素是否显示在TreeMap中。

方法3:使用TreeMap的entrySet()和getValue()方法

算法

  • 使用entrySet()方法从TreeMap获取entrySet。

  • 遍历条目。

  • 检查每个条目的值是否等于我们要查找的元素。

  • 如果找到匹配项,则将对应的键存储在名为position的变量中。

  • 如果position不为空,则表示元素已找到。否则,它不在TreeMap中存在。

示例

import java.util.Map;
import java.util.TreeMap;

public class TreeMapPositionFinder {
public static void main(String[] args) {
TreeMap treeMap = new TreeMap();
treeMap.put(1, "Apple");
treeMap.put(2, "Banana");
treeMap.put(3, "Orange");
treeMap.put(4, "Mango");

String element = "Banana";
Integer position = null;

for (Map.Entry entry : treeMap.entrySet()) {
if (entry.getValue().equals(element)) {
position = entry.getKey();
break;
}
}

if (position != null) {
System.out.println("Element found at position: " + position);
} else {
System.out.println("Element not found in the TreeMap.");
}
}
}

登录后复制

输出

Element found at position: 2

登录后复制登录后复制

解释

与第二种方法类似,我们创建一个TreeMap,填充它,并描述我们需要发现的组件。然后,我们使用for-each循环强调TreeMap的条目,并检查每个条目的值是否与组件匹配。如果找到匹配项,我们将相应的键存储在position变量中。最后,我们检查position是否无效,以确定组件是否显示在TreeMap中。

方法4:使用TreeMap的values()方法和indexOf()

算法

  • 使用values()方法从TreeMap获取值。

  • 使用indexOf()方法查找元素的索引。

  • 如果索引大于或等于0,则表示元素已找到。否则,它不在TreeMap中。

示例

import java.util.ArrayList;
import java.util.TreeMap;

public class TreeMapPositionFinder {
public static void main(String[] args) {
TreeMap treeMap = new TreeMap();
treeMap.put(1, "Apple");
treeMap.put(2, "Banana");
treeMap.put(3, "Orange");
treeMap.put(4, "Mango");

String element = "Mango";

ArrayList values = new ArrayList(treeMap.values());
int position = values.indexOf(element);

if (position >= 0) {
System.out.println("Element found at position: " + (position + 1));
} else {
System.out.println("Element not found in the TreeMap.");
}
}
}

登录后复制

输出

Element found at position: 4

登录后复制

解释

在这种方法中,我们首先创建一个TreeMap并填充它。我们描述了我们需要发现的组件,这里是“Banana”。然后,我们使用values()方法创建一个包含TreeMap值的ArrayList。我们使用indexOf()方法在ArrayList中找到组件的索引。如果索引大于或等于0,我们打印出组件的位置。否则,我们指示该元素未显示在TreeMap中。

结论

在本文中,我们探讨了在Java TreeMap中查找元素位置的不同方法。我们研究了语言结构、计算,并为每种方法提供了可执行的代码示例。根据您的特定需求和偏好,您可以选择最适合您需求的方法。Java中的TreeMap课程提供了一种强大而高效的方式来存储和操作排序数据,使您能够轻松执行各种操作。

以上就是在Java TreeMap中查找元素的位置的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论