Java 查找数组中的第二小整数。返回第二个最小整数的错误值

Java 查找数组中的第二小整数。返回第二个最小整数的错误值,java,Java,我需要使用java在数组中找到第二小数。我有以下代码。它在某种程度上是可行的,但出于某种原因,它没有第二次完全遍历数组以找到第二个最小值。它在第三个索引处停止并返回该值。如您所见,第二个最小值位于索引14处。任何帮助都将不胜感激。谢谢 //查找数组中第一个和第二个最小数的Java程序 public class FindSmallest2 { public static void main(String[] args) {

我需要使用java在
数组中找到第二小数。我有以下代码。它在某种程度上是可行的,但出于某种原因,它没有第二次完全遍历数组以找到第二个最小值。它在第三个索引处停止并返回该值。如您所见,第二个最小值位于索引14处。任何帮助都将不胜感激。谢谢

//查找数组中第一个和第二个最小数的Java程序

public class FindSmallest2 
    {
        public static void main(String[] args)
            {
                 int[] values;
                 values = new int[15];   
                 values[0]=341;            
                 values[1]=273;
                 values[2]=278;
                 values[3]=329;
                 values[4]=445;
                 values[5]=275;
                 values[6]=275;
                 values[7]=243;
                 values[8]=334;
                 values[9]=412;
                 values[10]=393;
                 values[11]=299;
                 values[12]=343;
                 values[13]=317;
                 values[14]=265;
                 int small1, small2;
                 small1 = small2 = values[0]; 
                 for(int i = 1; i < values.length; i++) 
                     {
                         if(values[i]<small1) 
                         {
                             small2 = small1;
                             small1 = values[i];
                         }
                     }
                         System.out.println("1st smallest value: "+small1);
                         System.out.println("2nd smallest value: "+small2);
          }
      }
公共类findsmalest2
{
公共静态void main(字符串[]args)
{
int[]值;
数值=新整数[15];
数值[0]=341;
数值[1]=273;
数值[2]=278;
数值[3]=329;
数值[4]=445;
数值[5]=275;
数值[6]=275;
数值[7]=243;
数值[8]=334;
数值[9]=412;
数值[10]=393;
数值[11]=299;
数值[12]=343;
数值[13]=317;
数值[14]=265;
int small1,small2;
small1=small2=值[0];
对于(int i=1;i如果(值[i],则不考虑测试数
值[i]
不是最小值,但小于当前第二小值的情况

这里有一个可能的解决方案:

if (values[i]<small1) {
    small2 = small1;
    small1 = values[i];
} else if (values[i]<small2) {
    small2 = values[i];
}

如果(值[i]您硬编码了这些值,您已经知道第二个最小值是什么:)@MarounMaroun检查代码是否有效硬编码数组初始化可以写成:
int[]values={1,2,…}
。可读性更强…非常感谢。它有效。@jeankaleb哪一个有效?接受它作为答案。