我是Java编程的初学者,我只是编写一个简单的程序来返回二维数组的第i列中的元素总和.
但是我的一个测试用例给了我一个ArrayIndexOutOfBoundsException错误,如下所示:
发生问题的测试用例:
int[][] numbers3 = {{3}, {2, 4, 6}, {3, 6}, {3, 6, 9, 12}};
System.out.println(columnSum(3, numbers3));
Run Code Online (Sandbox Code Playgroud)
这是我从此测试用例中获得的错误消息:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Array.columnSum(Array.java:12)
at Array.start(Array.java:6)
at ArrayApp.main(ArrayApp.java:7)
Run Code Online (Sandbox Code Playgroud)
我不知道如何解决这个问题...所以有人可以请指出我的错误吗?谢谢 !
这是我的代码:
public class Array {
public void start() {
int[][] numbers3 = {{3}, {2, 4, 6}, {3, 6}, {3, 6, 9, 12}};
System.out.println(columnSum(3, numbers3));
}
private int columnSum(int i, int[][] nums) {
int sum = 0;
for(int row = 0; row < nums.length; row++){
sum = sum …
Run Code Online (Sandbox Code Playgroud) 我正在使用动态排序对多个条件进行排序,这是我的代码:
public ActionResult WebGrid(int page = 1, int rowsPerPage = 10, string sortCol = "OrderID", string sortDir = "ASC", string sortSecCol = "OrderID", string sortSecDir = "ASC")
{
List<Orders> res;
using (var nwd = new NorthwindEntities())
{
var _res = nwd.Orders
.AsQueryable()
.OrderBy(sortCol + " " + sortDir, sortSecCol + " " + sortSecDir)
.Skip((page - 1) * rowsPerPage)
.Take(rowsPerPage)
.Select(o => new Orders
{
Run Code Online (Sandbox Code Playgroud)
我在这里尝试做的是,只要该列OrderID
不是主要排序,我就希望该列成为次要排序,但是当我实际选择其他列作为主要排序时,它不起作用。
换句话说,当其他列按降序选择作为主要排序时,OrderID
也应该按降序排列,我不确定我在代码中遗漏了什么。
OrderBy
我使用的方法来自这里 (MSDN)。
我在尝试对 Order 表中没有的任何列进行排序时遇到此错误,如果我使用OrderBy("Customer.CompanyName" + " " + sortDir)
该错误将消失但所有列都将无法排序。下面OrderBy
使用的方法来自这里。
问题的原因是什么?
public ActionResult WebGrid(int page = 1, int rowsPerPage = 10, string sortCol = "OrderID", string sortDir = "ASC")
{
List<Order> res;
using (var nwd = new NorthwindEntities())
{
var _res = nwd.Orders
.OrderBy(sortCol + " " + sortDir)
.Select(o => new Order
{
OrderID = o.OrderID,
OrderDate = o.OrderDate,
CompanyName = o.Customer.CompanyName,
FirstName = o.Employee.FirstName,
//......
//......
//......
});
Run Code Online (Sandbox Code Playgroud) 我有一个简单的程序,它读取参数参数并输出结果.
例如,如果我使用:
Rectangle r1 = new Rectangle(1.0, 2.0, "RED", false);
System.out.println(r1);
Run Code Online (Sandbox Code Playgroud)
应该返回:
1.0 x 2.0, color: RED
Run Code Online (Sandbox Code Playgroud)
但是如果我输入以下参数怎么办:
Rectangle r8 = new Rectangle();
System.out.println(r8);
Run Code Online (Sandbox Code Playgroud)
当使用上述参数时,我的程序如何输出以下默认结果?
1.0 x 1.0, filled with RED
Run Code Online (Sandbox Code Playgroud)
这是我的代码的一部分:
public class Rectangle extends Shape {
protected double width;
protected double length;
public Rectangle() {
super();
}
public Rectangle(double width, double length) {
super();
this.width = width;
this.length = length;
}
public Rectangle(double width, double length, String color, boolean filled) {
super(color, filled);
this.width = width;
this.length = …
Run Code Online (Sandbox Code Playgroud)