Java 8之前,如何实现按对象成员分组的功能?
- 内容介绍
- 相关推荐
本文共计359个文字,预计阅读时间需要2分钟。
在Java 8之前,实现基于对象中某个成员的分组通常需要手动编写循环和条件判断。以下是一个简化的示例,展示如何使用Java 8之前的方法来根据交易按照货币类型进行分组:
javaimport java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;
class Transaction { String currency; double amount;
public Transaction(String currency, double amount) { this.currency=currency; this.amount=amount; }}
public class GroupByCurrency { public static void main(String[] args) { List transactions=new ArrayList(); transactions.add(new Transaction(USD, 100.0)); transactions.add(new Transaction(EUR, 200.0)); transactions.add(new Transaction(USD, 150.0)); transactions.add(new Transaction(JPY, 300.0));
Map groupedTransactions=new HashMap();
for (Transaction transaction : transactions) { if (!groupedTransactions.containsKey(transaction.currency)) { groupedTransactions.put(transaction.currency, new ArrayList()); } groupedTransactions.get(transaction.currency).add(transaction); }
// 输出分组结果 for (Map.Entry entry : groupedTransactions.entrySet()) { System.out.println(Currency: + entry.getKey()); for (Transaction transaction : entry.getValue()) { System.out.println( Amount: + transaction.amount); } } }}
这段代码首先定义了一个`Transaction`类,包含货币类型和金额。然后在`GroupByCurrency`类中,创建了一个交易列表,并使用一个`HashMap`来按货币类型分组。通过遍历交易列表,将每个交易添加到对应的货币类型的列表中。最后,打印出每个货币类型及其对应的交易金额。
Map
本文共计359个文字,预计阅读时间需要2分钟。
在Java 8之前,实现基于对象中某个成员的分组通常需要手动编写循环和条件判断。以下是一个简化的示例,展示如何使用Java 8之前的方法来根据交易按照货币类型进行分组:
javaimport java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;
class Transaction { String currency; double amount;
public Transaction(String currency, double amount) { this.currency=currency; this.amount=amount; }}
public class GroupByCurrency { public static void main(String[] args) { List transactions=new ArrayList(); transactions.add(new Transaction(USD, 100.0)); transactions.add(new Transaction(EUR, 200.0)); transactions.add(new Transaction(USD, 150.0)); transactions.add(new Transaction(JPY, 300.0));
Map groupedTransactions=new HashMap();
for (Transaction transaction : transactions) { if (!groupedTransactions.containsKey(transaction.currency)) { groupedTransactions.put(transaction.currency, new ArrayList()); } groupedTransactions.get(transaction.currency).add(transaction); }
// 输出分组结果 for (Map.Entry entry : groupedTransactions.entrySet()) { System.out.println(Currency: + entry.getKey()); for (Transaction transaction : entry.getValue()) { System.out.println( Amount: + transaction.amount); } } }}
这段代码首先定义了一个`Transaction`类,包含货币类型和金额。然后在`GroupByCurrency`类中,创建了一个交易列表,并使用一个`HashMap`来按货币类型分组。通过遍历交易列表,将每个交易添加到对应的货币类型的列表中。最后,打印出每个货币类型及其对应的交易金额。
Map

