Caros usuários,
Tenho uma ArrayList de, por exemplo, clientes, e gostaria de fazer uma varredura desta array list à procura de um cliente com nome joao, por exemplo.
Geralmente utilizo for e while para varrer a lista à procura do cliente com esse nome.
Há alguma outra forma de fazer essa busca? Algo similar ao Locate do Delphi, talvez…
Pensei em utilizar o indexOf(), mas ele procura um objeto, e não um atributo de um objeto, neste caso cliente.
Este é o código que estou utilizando no momento :
private List listCarts = new ArrayList();
protected void addItem(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if (session.getAttribute("username") != null && !session.getAttribute("username").toString().isEmpty()) {
String username = session.getAttribute("username").toString();
int itemID = Integer.parseInt(request.getParameter("itemID"));
int amount = Integer.parseInt(request.getParameter("amount"));
String type = (request.getParameter("type"));
Item aItem = new Item(itemID, type, amount);
for (int i = 0; i < listCarts.size(); i++) {
if (listCarts.get(i).getUsername().equals(username)) {
if (listCarts.get(i).getItem() == null) {
List<Item> listItem = new ArrayList<Item>();
listItem.add(aItem);
listCarts.get(i).setItem(listItem);
} else {
for (int j = 0; j < amount; j++) {
listCarts.get(i).getItem().add(aItem);
}
}
break;
}
}
RequestDispatcher rd = request.getRequestDispatcher("/menu.jsp");
rd.forward(request, response);
} else {
RequestDispatcher rd = request.getRequestDispatcher("/index.jsp");
rd.forward(request, response);
}
}
Obrigado!