在ArrayList中查找最大的字符串

6 java arraylist

//我试图找到我的ArrayList中最大的String并将其打印出来,并且还包括最大元素所在的索引并将其打印到屏幕上.我只是想知道我哪里出错了.

谢谢.

import java.util.Scanner;                  
import java.util.ArrayList;

public class ArraylistString
{
   public static void main(String [] args)
   {
    // Instance of Scanner class
      Scanner keyboardIn = new Scanner(System.in);

   // Declare an array list of Strings
      ArrayList<String> Str = new ArrayList<>();
   // Add names to ArrayList
      Str.add("Jim Bob");
      Str.add("Bobby Jones");
      Str.add("Rob Stiles");
      int largestString = Str.size();
      int index = 0;

   // Use for loop to print out elements from ArrayList
      for(int i = 0; i < Str.size(); i++)
      {  // Test which String is the largest
         if(Str[i].size() > largestString)
         {
            largestString = Str[i].size();
            index = i;
         }

      } 
      // Output largest String and index it was found at
      System.out.println("Index " + index + " "+ Str[index] + " " + "is the largest and is size " + largestString);  

   }

}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ler 23

你也可以使用java.util.Collections.max.

Java 8

String max = Collections.max(Str, Comparator.comparing(String::length)); // or s -> s.length()
Run Code Online (Sandbox Code Playgroud)

以前的Java 8

String max = Collections.max(Str, new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {          
        return o1.length() - o2.length();
    }
});     
Run Code Online (Sandbox Code Playgroud)

然后

 System.out.println("Index " + arr.indexOf(max) + " " + max + " " + "is the largest and is size " + max.length());  
Run Code Online (Sandbox Code Playgroud)


ABH*_*ANA 3

请尝试这些代码。这里我尝试使用 get() 访问 ArrayList 元素,它工作正常。

import java.util.Scanner;                  
import java.util.ArrayList;

class ArraylistString
{
    public static void main(String args[])
    {
        ArrayList<String> Str = new ArrayList<String>();
        Str.add("Jim Bob");
        Str.add("Bobby Jones");
        Str.add("Rob Stiles");
        int largestString = Str.get(0).length();
        int index = 0;

        for(int i = 0; i < Str.size(); i++)
        {
            if(Str.get(i).length() > largestString)
            {
                largestString = Str.get(i).length();
                                index = i;
            }
        }
        System.out.println("Index " + index + " "+ Str.get(index) + " " + "is the largest and is size " + largestString);  

    }

}
Run Code Online (Sandbox Code Playgroud)