1 2 3 4 5 6 7 8 9 10 11 12 13 private List<Integer> nums; //precondition: nums.size() > 0 //nums contains Integer objects public void numQuest() { int k = 0; Integer zero = new Integer(0); while (k < nums.size()) { if (nums.get(k).equals(zero)) nums.remove(k); k++; } }
时间: 2023-12-25 09:04:06 浏览: 22
这段代码是一个 Java 方法,名为 `numQuest()`,它的作用是从 `nums` 列表中移除值为 0 的元素。
方法中的 `while` 循环遍历了 `nums` 列表中的所有元素,如果当前元素等于 0,则将其从列表中移除。需要注意的是,这个方法中使用了 `equals` 方法来比较 `Integer` 对象的值,而不是使用 `==`。这是因为 `Integer` 是一个类,使用 `==` 会比较它们的引用地址,而不是值。
此外,方法中还声明了一个 `List<Integer>` 类型的变量 `nums`,它是一个私有成员变量,也就是说只有该类的实例才能访问它。方法的前提条件是 `nums` 列表中至少有一个元素。
相关问题
private List<Integer> nums; //precondition: nums.size() > 0 //nums contains Integer objects public void numQuest() { int k = 0; Integer zero = new Integer(0); while (k < nums.size()) { if (nums.get(k).equals(zero)) nums.remove(k); k++; } }
这段代码存在一个潜在的问题,当 `nums` 列表中有多个连续的 0 时,只有第一个 0 会被移除,其余的 0 不会被移除。这是因为在移除元素之后,列表的大小会发生变化,而 `k` 的值却在自增,导致有些元素被漏掉了。
为了解决这个问题,可以将 `k` 的自增放在 `if` 语句的外面,这样就不会漏掉任何一个元素。修改后的代码如下:
```
private List<Integer> nums; //precondition: nums.size() > 0 //nums contains Integer objects
public void numQuest() {
int k = 0;
Integer zero = new Integer(0);
while (k < nums.size()) {
if (nums.get(k).equals(zero)) {
nums.remove(k);
} else {
k++;
}
}
}
```
这样修改后,即使 `nums` 列表中有多个连续的 0,也能正确地将它们全部移除。
用jquery改写以下程序<!DOCTYPE html> <html lang="en"> <head> <title>Styles Example</title> <style type="text/css"> .myDiv { background-color: blue; width: 150px; height: 150px; margin-right: 20px; display: table-cell; vertical-align: middle; text-align: center } .highlight { font-size: xx-large; } span { display: block; color: yellow; text-align: center; } </style> </head> <body> <table> <tr> <td> <div class="myDiv highlight"> <span>虎虎生威</span> </div> </td> <td> <div class="myDiv"> <span>生龙活虎</span> </div> </td> </tr> <tr> <td> <div class="myDiv"> <span>如虎添翼</span> </div> </td> <td> <div class="myDiv"> <span>卧虎藏龙</span> </div> </td> </table> <button onclick="start()" id="start">开始</button> <button onclick="stop()" disabled="disabled" id="stop">停止</button> <button onclick="resume()" disabled="disabled" id="resume">继续</button> <script> let divs = document.querySelectorAll(".myDiv");//取得所有div let startButton = document.getElementById("start");//取得开始按钮 let stopButton = document.getElementById("stop");//取得停止按钮 let resumeButton = document.getElementById("resume");//取得继续按钮 let nums = [0, 1, 3, 2]; let index = 0, timerId; function start() { startButton.disabled = true; for (let num of nums) { divs[nums[index]].classList.remove("highlight"); } index = 0; divs[nums[0]].classList.add("highlight"); resume(); } function stop() { clearInterval(timerId); stopButton.disabled = true; startButton.removeAttribute("disabled"); resumeButton.removeAttribute("disabled"); } function resume() { resumeButton.disabled = true; stopButton.removeAttribute("disabled"); timerId = window.setInterval(function () { divs[nums[index]].classList.remove("highlight"); index = (index + 1) % 4; divs[nums[index]].classList.add("highlight"); }, 500); } </script> </body> </html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Styles Example</title>
<style type="text/css">
.myDiv {
background-color: blue;
width: 150px;
height: 150px;
margin-right: 20px;
display: table-cell;
vertical-align: middle;
text-align: center
}
.highlight {
font-size: xx-large;
}
span {
display: block;
color: yellow;
text-align: center;
}
</style>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<table>
<tr>
<td>
<div class="myDiv highlight">
<span>虎虎生威</span>
</div>
</td>
<td>
<div class="myDiv">
<span>生龙活虎</span>
</div>
</td>
</tr>
<tr>
<td>
<div class="myDiv">
<span>如虎添翼</span>
</div>
</td>
<td>
<div class="myDiv">
<span>卧虎藏龙</span>
</div>
</td>
</table>
<button onclick="start()" id="start">开始</button>
<button onclick="stop()" disabled="disabled" id="stop">停止</button>
<button onclick="resume()" disabled="disabled" id="resume">继续</button>
<script>
let divs = $(".myDiv"); //取得所有div
let startButton = $("#start"); //取得开始按钮
let stopButton = $("#stop"); //取得停止按钮
let resumeButton = $("#resume"); //取得继续按钮
let nums = [0, 1, 3, 2];
let index = 0, timerId;
function start() {
startButton.prop("disabled", true);
for (let num of nums) {
divs.eq(nums[index]).removeClass("highlight");
}
index = 0;
divs.eq(nums[0]).addClass("highlight");
resume();
}
function stop() {
clearInterval(timerId);
stopButton.prop("disabled", true);
startButton.removeAttr("disabled");
resumeButton.removeAttr("disabled");
}
function resume() {
resumeButton.prop("disabled", true);
stopButton.removeAttr("disabled");
timerId = window.setInterval(function () {
divs.eq(nums[index]).removeClass("highlight");
index = (index + 1) % 4;
divs.eq(nums[index]).addClass("highlight");
}, 500);
}
</script>
</body>
</html>