有人向我推荐了两种实现这一目标的方法:
这个'search'方法应该返回ArrayList中的位置(以便可以使用remove(
)或对象引用(以便可以使用remove(
)。如果找不到工作人员,则搜索方法应返回-1(如果使用remove(
)或null(如果使用remove(
)。
然而,我不确定如何在Java中实现这一点。
import java.util.*;
import personnelPackage.Personnel;
public class ArrayListTest
{
static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args)
{
long searchQuery;
ArrayList<Personnel> staffList = new ArrayList<Personnel>();
Personnel[] staff =
{new Personnel(123456,"Smith","John"),
new Personnel(234567,"Jones","Sally Ann"),
new Personnel(999999,"Black","James Paul")};
for (Personnel person:staff)
staffList.add(person);
do
{
showDisplay(staffList);
System.out.print("\nPlease enter a payroll number to search: ");
searchQuery = keyboard.nextLong();
searchForPayrollNumber(staffList, searchQuery);
}while(!(searchQuery == 0));
}
private static void showDisplay(ArrayList<Personnel> staffList)
{
System.out.print("\n------------- CURRENT STAFF LIST -------------\n");
for (Personnel person : staffList)
{
System.out.println("Payroll number: " + person.getPayNum());
System.out.println("Surname: " + person.getSurname());
System.out.println("First name(s): " + person.getFirstNames() + "\n");
}
}
public static void searchForPayrollNumber(ArrayList<Personnel> staffList, long searchQuery)
{
long index = staffList.indexOf(searchQuery);;
for (Personnel person: staffList)
{
if (person.getPayNum() == searchQuery)
{
System.out.print("\n------------- Staff member found and removed! -------------");
System.out.println("\n\nFirst Name(s): " + person.getFirstNames());
System.out.println("\nSurname: " + person.getSurname());
System.out.print("\n-----------------------------------------------");
staffList.remove(index);
return;
}
}
System.out.print("\n------------- No staff members found. Program terminated -------------");
return;
}
}
package personnelPackage;
public class Personnel
{
private long payrollNum;
private String surname;
private String firstNames;
public Personnel(long payrollNum, String surname, String firstNames)
{
this.payrollNum = payrollNum;
this.surname = surname;
this.firstNames = firstNames;
}
public long getPayNum()
{
return payrollNum;
}
public String getSurname()
{
return surname;
}
public String getFirstNames()
{
return firstNames;
}
public void setSurname(String newName)
{
surname = newName;
}
}
考虑使用迭代器
进行搜索和删除:
Iterator<Personnel> i = staffList.iterator();
while (i.hasNext()) {
Personnel p = i.next();
if (p.getPayNum() == searchQuery) {
// print message
i.remove();
return p;
}
}
return null;
如果严格要求使用list#remove()
,则返回found人员p
,并调用,如果(p!=null)stafflist.remove(p)
:
public static Personnel searchByPayNum(List<Personnel> ps, long num) {
for (Personnel p : ps) {
if (p.getPayNum() == num)
return p;
}
return null;
}
在调用方代码中:
Personnel p = searchByPayNum(staffList, query);
if (p != null) {
// log
staffList.remove(p);
}
本章将讨论removeClass()方法,它是用于管理jQueryUI视觉效果的方法之一。 removeClass()方法从元素中删除应用的类。 removeClass()方法在为所有样式更改设置动画时将指定的类移除到匹配的元素。 语法 (Syntax) 在jQueryUI的1.0版中添加 removeClass()方法的基本语法如下 - .removeClass( className [, du
本文向大家介绍jQuery中DOM节点删除之empty与remove,包括了jQuery中DOM节点删除之empty与remove的使用技巧和注意事项,需要的朋友参考一下 前言 最近刚学了新知识,虽然是一个小知识点,但还是忍不住想和大家分享。本文的内容主要针对的是初学者,如果大家有什么意见或者问题都可以留言交流的,下面来看看详细的介绍吧。 .empty()是指对该节点后代的删除,结果是清空该节点(
.remove( value:* ) : * 从时间轴上移除一个动画、时间轴、函数或标签(或者他们的数组)。 tm.remove(tween1); .remove()适用于TimelineMaxTimelineLite .remove()的参数 参数 类型 必填 说明 value * 是 要删除的动画、时间轴、函数或标签(或者他们的数组) .remove() 示例 .remove()返回值 返回
ui:remove标签用于防止在客户端呈现JSF特定代码。 它特别用于防止注释掉的代码在客户端呈现。 使用HTML注释将JSF标记注释掉 <!-- JSF code commented out --> <!-- <h:commandButton value = "Ok" /> --> 渲染输出 (Rendered Output) <!-- JSF code commented out --
remove(删除文件) 相关函数 link,rename,unlink 表头文件 #include<stdio.h> 定义函数 int remove(const char * pathname); 函数说明 remove()会删除参数pathname指定的文件。如果参数pathname为一文件,则调用unlink()处理,若参数pathname为一目录,则调用rmdir()来处理。请参考unli
描述 (Description) 它用于从DOM中删除视图,并调用stopListening以删除视图已listenTo'd任何绑定事件。 语法 (Syntax) view.remove() 例子 (Example) <!DOCTYPE html> <html> <head> <title>View Example</title> <script src = "ht