首页 >Java >java教程 >Java 中的关联数组

Java 中的关联数组

王林
王林原创
2024-08-30 15:28:33674浏览

关联数组以(键,值)对的形式存储元素集。关联数组包含唯一的键和值的集合,将每个键与单个值相关联。 java中的关联数组数据结构有利于广泛的应用。与 Perl 和 PHP(使用哈希变量)一样,其他编程语言也实现了使用关联数组数据结构的功能。由于关联数组以(键,值)对的形式存储元素,因此要访问关联数组中的元素,我们需要调用数组的名称和密码(我们要访问其值)。

广告 该类别中的热门课程 JAVA 掌握 - 专业化 | 78 课程系列 | 15 次模拟测试

例如,一个数组(名称为分数)存储学生的学号和分数。要访问特定学生的分数,我们应该将此称为marks[102],其中marks是一个数组名称,而102是学生的rollno,而不是索引号,这在java.lang.String数组中是不可能的。因此,关联数组在技术上在java中不支持,但可以使用java.util.HashMap类实例的形式来实现。

语法:

Map <String, String> map = new HashMap <String, String>( ); // creates Map where keys and values of string type
//method to store elements
map.put( "key1", "value1" );
map.put( "key2", "value2" );
// etc
// method to access value
map.get( "key1" ); // returns "value1" as output

如何在 Java 中创建关联数组?

  • Java 提供了 Map 类或 HashMap,它可以用作数组类型。映射 不引用索引(例如,1、2、3、4、5 等),而是引用数组的对象或引用键。因此地图可以用作关联数组的替代方案。
  • 您可以使用 put 方法将元素添加到映射中的数组中。要访问元素,可以使用 get 方法。如果要访问数组的所有值,可以使用 keySet 函数。另外,我们可以使用remove函数从map中删除元素并获取数组的大小;可以使用 size 方法(如数组中的 length 函数所使用的那样)。简而言之,映射将值与键关联(链接)。

关联数组的优点

使用关联数组,我们可以将有意义的键分配给数组元素的值,保存更多元素,并将字符串作为键分配给数组的元素。

在 Java 中实现关联数组的示例

我们通过下面的示例java代码来理解上述方法。要创建地图,我们需要导入允许使用地图的实用程序。因此我们将导入 Map 和 HashMap 实用程序。以下是在 Java 中实现关联数组的示例:

示例#1

遍历关联数组的各种方法

代码:

import java.util.HashMap;
public class Demo {
public static void main(String[] args ) {
HashMap <String, String> capitals = new HashMap <String, String>();
capitals.put("Spain", "Madrid");
capitals.put("United Kingdom", "London");
capitals.put("India", "Delhi");
capitals.put("Argentina", "Buenos Aires");
System.out.println("The Size of capitals Map is : " + capitals.size());
// Remove an element from the HashMap
capitals.remove("United Kingdom");
// To display size of the hashtmap
System.out.println("The Size of capitals Map is : " + capitals.size());
// Check the existence of key in the Hashmap
String key = "India";
if (capitals.containsKey( key )) {
System.out.println("The capital of " + key + " is: " + capitals.get( key ));
} else {
System.out.println("There is no entry for the capital of " + key);
}
}
}

输出:

Java 中的关联数组

示例#2

使用迭代器方法遍历关联数组

代码:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class DurationClassDemo {
public static void main(String[] args) {
HashMap<String, String> capitals = new HashMap<String, String>();
capitals.put("Spain", "Madrid");
capitals.put("United Kingdom", "London");
capitals.put("India", "Delhi");
capitals.put("Argentina", "Buenos Aires");
System.out.println("The Size of capitals Map is : " + capitals.size());
Iterator i = capitals.entrySet().iterator();
// Iterate through the hashmap
while (i.hasNext()) {
Map.Entry ele = (Map.Entry)i.next();
System.out.println(ele.getKey() + " : " + ele.getValue());
}
}
}

输出:

Java 中的关联数组

示例 #3

使用 for-each 循环遍历关联数组

代码:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class DurationClassDemo {
public static void main(String[] args) {
HashMap<String, String> capitals = new HashMap<String, String>();
capitals.put("Spain", "Madrid");
capitals.put("United Kingdom", "London");
capitals.put("India", "Delhi");
capitals.put("Argentina", "Buenos Aires");
System.out.println("The Size of capitals Map is : " + capitals.size());
for (Map.Entry ele : capitals.entrySet()) {
String key = (String)ele.getKey();
System.out.println(key + " : " + ele.getValue());
}
}
}

输出:

Java 中的关联数组

示例#4

使用 hashmap 的 forEach( ) 方法遍历关联数组

代码:

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class DurationClassDemo {
public static void main(String[] args) {
HashMap<String, String> capitals = new HashMap<String, String>();
capitals.put("Spain", "Madrid");
capitals.put("United Kingdom", "London");
capitals.put("India", "Delhi");
capitals.put("Argentina", "Buenos Aires");
System.out.println("The Size of capitals Map is : " + capitals.size());
capitals.forEach((k, v) -> System.out.println(k + " : " + v ));
}
}

输出:

Java 中的关联数组

结论

简单来说,java中的关联数组将元素的集合存储在一个键中;关联数组中的值对是唯一键和值的集合,其中每个键与一个值关联。我们可以使用 hashMap 内置的 java 类来实现关联数组,如上面的示例所示。

以上是Java 中的关联数组的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn