Всем привет!
Спасибо вам за то что вы читаете подобные вопросы и делитесь опытом!!!
Ситуация:
если я правильно понял то ошибка моя в это
List<String> strings = new ArrayList<>(); - я так понимаю правильный вариант strings = new ArrayList<>();
Вопросы:
1. в чем моя ошибка? моя запсь гласит что я создал/перезаписал классовый объект strings? Если честно для меня очень тяжело прошла тема с зонами видимости. Объясните пожалуйста на пальцах, используя правильную терминалогию. Спасибо.
p.s.
...мысли в слух. Получается можно создать переменную в класе(классовую переменную) а можно в методе. и они могут называться одинаково.
int a; Но наполняя переменную созданную в методе я никак не влияю на классовую.
2. ... я чтото пропустил? мы уже проходили что такое List? проходить в будущих лекциях будем? стоит самостоятельно сейчас гуглить, разбираться?
Спасибо.
package com.javarush.task.task07.task0708;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Самая длинная строка
*/
public class Solution {
private static List<String> strings;
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
List<String> strings = new ArrayList<>();
//Считываем 5 строк с клавы и записываем их в список
for (int i = 0; i < 5; i++) {
strings.add(reader.readLine());
}
//ищем самую длинную строку
int max = 0;
for (int i = 0; i < strings.size(); i++) {
String s = strings.get(i);
if (i == 0) max = s.length();
if (max < s.length()) max = s.length();
}
// проверяем есть такойже длиной строки как и мин и выводим их все
for (int i = 0; i <strings.size() ; i++) {
String s = strings.get(i);
if (s.length() == max) System.out.println(s);
}
}
}