Pra*_*kar 1 java collections arraylist
我正在用java编程。假设我有一个自定义对象 Item
class Item
{
Integer id;
BigDecimal itemNumber;
}
Run Code Online (Sandbox Code Playgroud)
我有项目清单。
List<Item> items = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
现在,java 中最好的方法是什么,Items包含一些Items具有相同值的itemNumber.
要搜索具有某个项目编号的特定项目:
//result list
List<Item> itemsWithSameNumber = new ArrayList<>();
for (Item item : items) {
if (item.getItemNumber().equals(yourKey)) {
itemsWithSameNumber.add(item);
}
}
Run Code Online (Sandbox Code Playgroud)
要获取所有项目编号的项目列表:
您可以HashMap在这种情况下使用 a :
//result map
HashMap<BigDecimal, List<Item>> map = new HashMap<>();
for (Item item : items) {
List<Item> itemsWithSameNumber = map.get(item.getItemNumber());
if (itemsWithSameNumber == null) { //does not exist in map yet
itemsWithSameNumber = new ArrayList<Item>();
map.put(item.getItemNumber(), itemsWithSameNumber);
}
itemsWithSameNumber.add(item); //now add the item to the list for this key
}
Run Code Online (Sandbox Code Playgroud)
稍后,您可以遍历地图的键集并获取每个键的所有项目:
for (BigDecimal key : map.keySet()) {
List<Item> listOfElementsWithSameKey = map.get(key);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3725 次 |
| 最近记录: |