帮我用java封装一个MapList,MapList存储有序且不使用键值对存储,采用类似数组的方式存储
时间: 2024-05-15 17:16:51 浏览: 92
FundamentalCodingConceptsRepository:此存储库用于记录我对Java基本概念的了解
以下是一个基于Java的MapList类的实现,它使用类似于数组的方式存储数据,同时保持有序。
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MapList<T> {
private List<T> items;
private Map<T, Integer> indices;
public MapList() {
items = new ArrayList<>();
indices = new HashMap<>();
}
public void add(T item) {
items.add(item);
indices.put(item, items.size() - 1);
}
public T get(int index) {
return items.get(index);
}
public int indexOf(T item) {
Integer index = indices.get(item);
return index != null ? index : -1;
}
public boolean contains(T item) {
return indices.containsKey(item);
}
public int size() {
return items.size();
}
public void clear() {
items.clear();
indices.clear();
}
}
```
使用示例:
```java
MapList<String> mapList = new MapList<>();
mapList.add("apple");
mapList.add("banana");
mapList.add("cherry");
System.out.println(mapList.get(0)); // 输出 "apple"
System.out.println(mapList.indexOf("banana")); // 输出 "1"
System.out.println(mapList.contains("cherry")); // 输出 "true"
System.out.println(mapList.size()); // 输出 "3"
mapList.clear();
System.out.println(mapList.size()); // 输出 "0"
```
阅读全文