私はjavaに新しく、私はhashMapListのリストの下で宣言しています。リストをソートする方法<HashMap <String、String >> ls in java?
List<HashMap<String, String>> hashMapList = new ArrayList<HashMap<String, String>>();
私はhashMapListにデータを置くための別の方法insertData
をしました。
私は別のリストを作成しましたpsData
。
HashMap<String, String> psData = new HashMap<String, String>();
したがって、hashMapListのリストには以下のコードが使用されています。
HashMap<String, String> psData = new HashMap<String, String>();
so for insert the list in hashMapList i have use below code.
psData = insertData(payment.getDocumentNo(), payment.getId(),
payment.getPaymentDate(), creditLeft, payment.getBusinessPartner(), group,
recOrPay.equals("RECEIVABLES") ? paymentInTab : paymentOutTab, dateFormat, true,
BigDecimal.ZERO, addressline1, addressline2, City, postalcode, state, email,
phoneno, payment.getAmount(), duration, discount,
payment.getFinancialTransactionAmount(), payment.getWriteoffAmount(),
Outstandings, Coa, Ev);
hashMapList.add(psData);
ここで、私は、insertDataメソッドで渡したcoaプロパティを使用して、そのhashMapListをフィルタ処理します。
これはjavaで可能ですか?私を助けてください。 ありがとうございます私は最善を尽くしましたが、私は理解しません。
private HashMap<String, String> insertData(String documentNo, String id, Date date,
BigDecimal amount, BusinessPartner bpartner, int group, String tabId,
SimpleDateFormat dateFormat, boolean credits, BigDecimal doubtfulDebt, String Address1,
String Address2, String Zip, String City, String State, String Email, String Phone_h,
BigDecimal InvoiceAmount, int Durations, BigDecimal Discount, BigDecimal Payments,
BigDecimal Writeoffs, BigDecimal Outstandings, String Coa, ElementValue ev) {
HashMap<String, String> psData = new HashMap<String, String>();
psData.put("INVOICE_NUMBER", documentNo);
psData.put("INVOICE_ID", id);
psData.put("INVOICE_DATE", dateFormat.format(date));
psData.put("AMOUNT" + group, amount.compareTo(BigDecimal.ZERO) == 0 ? null : amount.toString());
psData.put("DOUBTFUL_DEBT",
doubtfulDebt.compareTo(BigDecimal.ZERO) == 0 ? null : doubtfulDebt.toString());
BigDecimal percentage = calculatePercentage(amount.add(doubtfulDebt), doubtfulDebt);
psData.put("PERCENTAGE",
percentage.compareTo(BigDecimal.ZERO) == 0 ? null : percentage.toString());
if (credits) {
psData.put("SHOW_NETDUE", amount.add(doubtfulDebt).toString());
} else {
psData.put("NETDUE", amount.add(doubtfulDebt).toString());
psData.put("SHOW_NETDUE", amount.add(doubtfulDebt).toString());
}
psData.put("BPARTNER", bpartner.getId().toString());
psData.put("BPARTNERNAME", bpartner.getIdentifier().toString());
psData.put("TABID", tabId);
psData.put("address1", Address1);
psData.put("address2", Address2);
psData.put("zip", Zip);
psData.put("city", City);
psData.put("state", State);
psData.put("email", Email);
psData.put("phone_h", Phone_h);
psData.put("invoiceamount",
InvoiceAmount.compareTo(BigDecimal.ZERO) == 0 ? "-" : InvoiceAmount.toString());
psData.put("durations",
Integer.toString(Durations).equals("0") ? "-" : Integer.toString(Durations));
psData.put("payments", Payments.compareTo(BigDecimal.ZERO) == 0 ? "0.00" : Payments.toString());
psData.put("writeoffs",
Writeoffs.compareTo(BigDecimal.ZERO) == 0 ? "0.00" : Writeoffs.toString());
psData.put("outstandings",
Outstandings.compareTo(BigDecimal.ZERO) == 0 ? "0.00" : Outstandings.toString());
psData
.put("discounts", Discount.compareTo(BigDecimal.ZERO) == 0 ? "0.00" : Discount.toString());
psData.put("coa", Coa);
psData.put("ev", ev.getId());
return psData;
}
'Collections.sort()'と 'Comparator
@Thomasあなたは私に例を挙げてください。 – ADMIN
Yikes:その多くのパラメータを持つ方法は、常に疑わしいです。たとえば、間違った順序で2つのパラメータを渡すことは非常に簡単で、気づかないでしょう。 [builder pattern](https://en.wikipedia.org/wiki/Builder_pattern)の使用を検討する必要があります。 –