用Java写一个储存相同名称,不同值集的方法
时间: 2024-01-22 10:18:48 浏览: 37
可以使用Java的Map数据结构来储存相同名称、不同值集的数据。Map是一种键值对应的集合,其中每个键都唯一对应一个值。以下是一个示例代码:
```java
import java.util.HashMap;
import java.util.Map;
public class NameValueStore {
private Map<String, Object> store;
public NameValueStore() {
store = new HashMap<>();
}
public void add(String name, Object value) {
if (store.containsKey(name)) {
// 如果名称已经存在,则将新值添加到值列表中
Object oldValue = store.get(name);
if (oldValue instanceof Object[]) {
Object[] values = (Object[]) oldValue;
Object[] newValues = new Object[values.length + 1];
System.arraycopy(values, 0, newValues, 0, values.length);
newValues[values.length] = value;
store.put(name, newValues);
} else {
Object[] values = new Object[2];
values[0] = oldValue;
values[1] = value;
store.put(name, values);
}
} else {
// 如果名称不存在,则直接添加名称和值
store.put(name, value);
}
}
public Object get(String name) {
if (store.containsKey(name)) {
Object value = store.get(name);
if (value instanceof Object[]) {
// 如果值是一个数组,则返回数组
return (Object[]) value;
} else {
// 如果值不是数组,则返回单个值
return value;
}
} else {
// 如果名称不存在,则返回null
return null;
}
}
}
```
使用示例:
```java
NameValueStore store = new NameValueStore();
store.add("name", "Alice");
store.add("age", 20);
store.add("hobby", "reading");
store.add("hobby", "swimming");
System.out.println(store.get("name")); // 输出 "Alice"
System.out.println(store.get("age")); // 输出 20
System.out.println(Arrays.toString((Object[]) store.get("hobby"))); // 输出 "[reading, swimming]"
```
在上面的示例中,我们使用Map来储存数据,并提供了add和get方法来添加和获取数据。如果名称已经存在,则将新值添加到值列表中。可以使用get方法来获取单个值或值列表。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)