gpt4 book ai didi

java - 如何输出数组中元素的索引

转载 作者:行者123 更新时间:2023-12-02 10:27:47 26 4
gpt4 key购买 nike

这是任务:设计、实现和测试程序来执行以下各项操作:

a) 求 10 个整数的列表中正整数的总和和个数。

b) 在 10 个整数的列表中找到最小的数字。

c) 确定并输出 10 个整数列表中的最大和最小数字。 输出应采用以下形式:“最大的数字 304 位于列表中的第 3 位”“最小的数字 4 位于列表中的位置 8”

所以我尝试了它,问题是除了给我最大和最小数字的位置之外,一切正常。

    import java.util.Arrays;

public class a5_2 {
@SuppressWarnings("unlikely-arg-type")
public static void main (String [] args) {


int m [] = {-3,23,7,12,4,-44,2,21,3,43} ;

System.out.println("Array: " + Arrays.toString(m));
int[] pos = findNumber(m);
System.out.println("Array without negatives: ");
for (int i = 0; i < pos.length; i++)
{
System.out.println(pos[i]);
}


System.out.println("Number of pos num: " + pos.length);
int sum = 0;
for (int i : pos)
sum += i;
System.out.println("Sum of pos num: " + sum);


int [] small = findSmallest(pos);
System.out.println("Smallest Number: ");
System.out.println(small[0] + " at pos: " + Arrays.asList(pos).indexOf(small[0]));

int [] big = findBiggest(pos);
System.out.println("Biggest Number: ");
System.out.println(big[0] + " at pos: " + Arrays.asList(pos).indexOf(big[0]));
}

public static int [] findNumber(int[] sum) {
int num = 0;
int n [] = new int [sum.length];
for(int i = 0; i < sum.length; i++)
{
if (sum[i] > 0)
{
n[num] = sum[i];
num++;
}
}
int [] pos = new int [num];
for (int k = 0 ; k < num ; k++)
{
pos[k] = n[k];
}

return pos;

}
public static int [] findSmallest(int[] pos) {
int temp;
for (int i = 0; i < pos.length; i++)
{
for (int j = i + 1; j < pos.length; j++)
{


if (pos[i] > pos[j])
{
temp = pos[i];
pos[i] =pos[j];
pos[j] = temp;
}
}
}
return pos;

}
public static int [] findBiggest(int[] pos) {
int temp;
for (int i = 0; i < pos.length; i++)
{
for (int j = i + 1; j < pos.length; j++)
{


if (pos[i] < pos[j])
{
temp = pos[i];
pos[i] =pos[j];
pos[j] = temp;
}
}
}
return pos;

}
}

位置的输出是-1,而不是它应该给出的输出。

提前谢谢你们:)

最佳答案

Arrays.asList(pos)正在转换为List<int[]>将其转换为List<Integer>然后获取索引

List<Integer> comArray = Arrays.stream(m).boxed().collect(Collectors.toList());

System.out.println(small[0] + " at pos: " + comArray.indexOf(small[0]));

在java-7中,我相信你已经知道如何转换 int[]List<integer>

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

List<Integer> intList = new ArrayList<Integer>();
for (int i : m)
{
intList.add(i);
}

验证码

 @SuppressWarnings("unlikely-arg-type")
public static void main (String [] args) {


int m [] = {-3,23,7,12,4,-44,2,21,3,43} ;

List<Integer> comArray = Arrays.stream(m).boxed().collect(Collectors.toList());

System.out.println("Array: " + Arrays.toString(m));
int[] pos = findNumber(m);
System.out.println("Array without negatives: ");
for (int i = 0; i < pos.length; i++)
{
System.out.println(pos[i]);
}


System.out.println("Number of pos num: " + pos.length);
int sum = 0;
for (int i : pos)
sum += i;
System.out.println("Sum of pos num: " + sum);


int [] small = findSmallest(pos);
System.out.println("Smallest Number: ");
System.out.println(small[0] + " at pos: " + comArray.indexOf(small[0]));

int [] big = findBiggest(pos);
System.out.println("Biggest Number: ");
System.out.println(big[0] + " at pos: " + comArray.indexOf(big[0]));
}

public static int [] findNumber(int[] sum) {
int num = 0;
int n [] = new int [sum.length];
for(int i = 0; i < sum.length; i++)
{
if (sum[i] > 0)
{
n[num] = sum[i];
num++;
}
}
int [] pos = new int [num];
for (int k = 0 ; k < num ; k++)
{
pos[k] = n[k];
}

return pos;

}
public static int [] findSmallest(int[] pos) {
int temp;
for (int i = 0; i < pos.length; i++)
{
for (int j = i + 1; j < pos.length; j++)
{


if (pos[i] > pos[j])
{
temp = pos[i];
pos[i] =pos[j];
pos[j] = temp;
}
}
}
return pos;

}
public static int [] findBiggest(int[] pos) {
int temp;
for (int i = 0; i < pos.length; i++)
{
for (int j = i + 1; j < pos.length; j++)
{


if (pos[i] < pos[j])
{
temp = pos[i];
pos[i] =pos[j];
pos[j] = temp;
}
}
}
return pos;

}

}

输出

Array: [-3, 23, 7, 12, 4, -44, 2, 21, 3, 43]
Array without negatives:
23
7
12
4
2
21
3
43
Number of pos num: 8
Sum of pos num: 115
Smallest Number:
2 at pos: 6
Biggest Number:
43 at pos: 9

关于java - 如何输出数组中元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53798588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com