Здравствуйте! помогите ,пожалуйста,понять разницу между этим решением public class Solution { public static void main(String[] args) { String packagePath = "java.util.stream"; String[] tokens = getTokens(packagePath, "\\."); System.out.println(Arrays.toString(tokens)); } public static String[] getTokens(String query, String delimiter) { StringTokenizer tokenizer = new StringTokenizer(query,delimiter); String[]result= new String [tokenizer.countTokens()]; int i = 0; while (tokenizer.hasMoreTokens()) { result[i++]= tokenizer.nextToken(); } return result; } } и этим public static String[] getTokens(String query, String delimiter) { StringTokenizer tokenizer = new StringTokenizer(query, delimiter); String[] result = new String[tokenizer.countTokens()]; for(int i = 0;i< result.length;i++){ result[i] = tokenizer.nextToken(); } return result; } } я не понимаю,почему в первом случае result[i++]= tokenizer.nextToken(); почему [i++]? а как тогда в result[0] присваивается tokenizer.nextToken()? я решила через цикл for , потом посмотрела ответ и не поняла вот так я еще тоже понимаю,так тоже работает,и логика понятна int i = 0; while (tokenizer.hasMoreTokens()) { result[i]= tokenizer.nextToken(); i++; Заранее огромное спасибо!