Java 应为List.add()类

Java 应为List.add()类,java,list,Java,List,我在大学里上Java课。我的老师实际上是一名C语言的老师,所以她不知道这段代码是怎么回事。我在这一页上读到,我可以使用语法“list[].add(int index,element)”将特定对象或计算添加到特定索引中,从而减少了所需的编码量。我要创建的程序是一个用于D&D的随机统计生成器,用于实践。给出误差的方法如下: //StatGenrator与ActionListener一起使用 private String StatGenerator () { int finalStat

我在大学里上Java课。我的老师实际上是一名C语言的老师,所以她不知道这段代码是怎么回事。我在这一页上读到,我可以使用语法“list[].add(int index,element)”将特定对象或计算添加到特定索引中,从而减少了所需的编码量。我要创建的程序是一个用于D&D的随机统计生成器,用于实践。给出误差的方法如下:

//StatGenrator与ActionListener一起使用

private String StatGenerator ()
{
        int finalStat;
        String returnStat;

        //Creates an empty list.
        int[] nums={};

        //Adds a random number from 1-6 to each list element.
        for (int i; i > 4; i++)
            nums[].add(i, dice.random(6)+1); //Marks 'add' with "error: class expected"

        //Sorts the list by decending order, then drops the
        //lowest number by adding the three highest numbers 
        //in the list.            
        Arrays.sort(nums);
        finalStat = nums[1] + nums[2] + nums[3]; 

        //Converts the integer into a string to set into a 
        //texbox.
        returnStat = finalStat.toString();
        return returnStat;
}
我的最终目标是使用某种排序列表或删除集合中最低值的方法。这种方法的要点是从1-6生成4个随机数,然后去掉最低的,将最高的三个加在一起。最后的数字将是文本框的文本,因此它将转换为字符串并返回。代码的其余部分工作正常,我只是在使用这种方法时遇到了问题


如果有人有什么想法,我洗耳恭听。我做了一些研究,发现了一些关于使用ArrayList创建一个新的List对象的东西,但我不确定它的语法。最后,我试着在另一个问题中寻找这种语法,但在stackoverflow上找不到。如果我在某个地方遗漏了一些内容,请道歉。

阵列的大小是固定的,因此您需要在开始时为所有插槽分配空间。然后将数字放入数组,分配给
nums[i]
。不需要add()方法

int[] nums = new int[4];

for (int i = 0; i < 4; i++)
    nums[i] = dice.random(6) + 1;

Arrays.sort(nums);
finalStat = nums[1] + nums[2] + nums[3]; 
int[]nums=newint[4];
对于(int i=0;i<4;i++)
nums[i]=骰子随机(6)+1;
数组。排序(nums);
finalStat=nums[1]+nums[2]+nums[3];

或者,如果您确实需要动态大小的数组,请使用ArrayList。ArrayList可以增长和收缩

List<Integer> nums = new ArrayList<Integer>();

for (int i = 0; i < 4; i++)
    nums.add(dice.random(6) + 1);

Collections.sort(nums);
finalStat = nums.get(1) + nums.get(2) + nums.get(3); 
List nums=new ArrayList();
对于(int i=0;i<4;i++)
加法(骰子随机(6)+1);
集合。排序(nums);
finalStat=nums.get(1)+nums.get(2)+nums.get(3);

请注意,由于ArrayList是一个类而不是内置类型,因此语法有多么不同。

数组的大小是固定的,因此需要在开始时为所有插槽分配空间。然后将数字放入数组,分配给
nums[i]
。不需要add()方法

int[] nums = new int[4];

for (int i = 0; i < 4; i++)
    nums[i] = dice.random(6) + 1;

Arrays.sort(nums);
finalStat = nums[1] + nums[2] + nums[3]; 
int[]nums=newint[4];
对于(int i=0;i<4;i++)
nums[i]=骰子随机(6)+1;
数组。排序(nums);
finalStat=nums[1]+nums[2]+nums[3];

或者,如果您确实需要动态大小的数组,请使用ArrayList。ArrayList可以增长和收缩

List<Integer> nums = new ArrayList<Integer>();

for (int i = 0; i < 4; i++)
    nums.add(dice.random(6) + 1);

Collections.sort(nums);
finalStat = nums.get(1) + nums.get(2) + nums.get(3); 
List nums=new ArrayList();
对于(int i=0;i<4;i++)
加法(骰子随机(6)+1);
集合。排序(nums);
finalStat=nums.get(1)+nums.get(2)+nums.get(3);

请注意,由于ArrayList是一个类而不是内置类型,因此语法有多么不同。

'int nums[]不是一个列表,而是一个数组

List<Integer> intList = new ArrayList<>();
您可以使用Collections类对列表进行排序:

Collections.sort(intList);

以下是有关Java中集合的一些信息:

'int nums[]不是列表,而是数组

List<Integer> intList = new ArrayList<>();
您可以使用Collections类对列表进行排序:

Collections.sort(intList);
以下是有关Java中集合的一些信息:

nums[]添加(i,骰子随机(6)+1)//将“添加”标记为“错误:类” 预期的”

您正在尝试对数组使用
添加
。List是一个动态数组,但这并不意味着数组==List。您应该使用列表

 List<Integer> nums=new ArrayList<Integer>();

//Adds a random number from 1-6 to each list element.
for (int i; i > 4; i++)
    nums.add(i, dice.random(6)+1); 
List nums=new ArrayList();
//将1-6之间的随机数添加到每个列表元素。
对于(int i;i>4;i++)
加法(i,骰子随机(6)+1);
nums[]添加(i,骰子随机(6)+1)//将“添加”标记为“错误:类” 预期的”

您正在尝试对数组使用
添加
。List是一个动态数组,但这并不意味着数组==List。您应该使用列表

 List<Integer> nums=new ArrayList<Integer>();

//Adds a random number from 1-6 to each list element.
for (int i; i > 4; i++)
    nums.add(i, dice.random(6)+1); 
List nums=new ArrayList();
//将1-6之间的随机数添加到每个列表元素。
对于(int i;i>4;i++)
加法(i,骰子随机(6)+1);

您正在混合数组和列表

请查看教程:


您正在混合数组和列表

请查看教程:


该链接中没有任何地方表明您可以执行
列表[]。添加…
int[]nums={}创建并清空数组而不是列表如果她不知道,也许她不应该教Java。使用列表可能会更好。我刚刚学习了java语言的复杂性,所以我假设可以使用类似列表的数组。将来在处理数组时,我会考虑您的意见。@Estel-永远不要假设…:)(特别是当你正在学习,尤其是在编程语言方面。准确一点很重要。)在这个链接中没有任何地方说你可以做
list[]创建并清空数组而不是列表如果她不知道,也许她不应该教Java。使用列表可能会更好。我刚刚学习了java语言的复杂性,所以我假设可以使用类似列表的数组。将来在处理数组时,我会考虑您的意见。@Estel-永远不要假设…:)(尤其是在学习编程语言的时候。准确一点很重要。)此外,我希望最后一行以
nums.add(…
)开头,而不是
nums[]。add(
。希望后者是一个编译器错误,否则它可能会造成混乱……哎呀,这是复制/粘贴错误。@Sotirios Delimanolis感谢您的编辑:)是的,括号是我的一个错误。我更改了它,认为这可能是错误。我在复制/粘贴代码时不小心把它留在了那里。我还希望最后一行以
nums.add(…
,而不是
nums[])开头。add(
。希望后者是一个编译器错误,否则它可能做了一些令人困惑的事情……哎呀,这是复制/粘贴错误。@sot