Мы могли бы использовать Arrays.toString(array)
для печати одномерного массива и Arrays.deepToString(array)
для многомерных массивов.
Теперь у нас есть опция Stream
и lambda
для печати массива.
Печать одномерного массива:
public static void main(String[] args) {
int[] intArray = new int[] {1, 2, 3, 4, 5};
String[] strArray = new String[] {"John", "Mary", "Bob"};
//Prior to Java 8
System.out.println(Arrays.toString(intArray));
System.out.println(Arrays.toString(strArray));
// In Java 8 we have lambda expressions
Arrays.stream(intArray).forEach(System.out::println);
Arrays.stream(strArray).forEach(System.out::println);
}
Вывод:
[1, 2, 3, 4, 5]
[Джон, Мэри, Боб]
1
2
3
4
5
Джон
Мэри
Боб
Печать многомерного массива На всякий случай, если мы хотим напечатать многомерный массив, мы можем использовать Arrays.deepToString(array)
as:
public static void main(String[] args) {
int[][] int2DArray = new int[][] { {11, 12}, { 21, 22}, {31, 32, 33} };
String[][] str2DArray = new String[][]{ {"John", "Bravo"} , {"Mary", "Lee"}, {"Bob", "Johnson"} };
//Prior to Java 8
System.out.println(Arrays.deepToString(int2DArray));
System.out.println(Arrays.deepToString(str2DArray));
// In Java 8 we have lambda expressions
Arrays.stream(int2DArray).flatMapToInt(x -> Arrays.stream(x)).forEach(System.out::println);
Arrays.stream(str2DArray).flatMap(x -> Arrays.stream(x)).forEach(System.out::println);
}
Теперь необходимо отметить, что метод Arrays.stream(T[])
, который в случае int[]
возвращает нас Stream<int[]>
, а затем метод flatMapToInt()
отображает каждый элемент потока с содержимым отображенного потока, полученного путем применения предоставленной функции отображения к каждому элементу.
Вывод:
[[11, 12], [21, 22], [31, 32, 33]]
[[Джон, Браво], [Мэри, Ли], [Боб, Джонсон]]
11
12
21
22
31
32
33
Джон
Браво
Мэри
Ли
Боб
Джонсон
Это сделано за вас. Посмотрите на UnloadRecursive ()
из System.Web.UI.Control
в Reflector, который вызывается ProcessRequestCleanup ()
.
В этой статье о Жизненный цикл страницы ASP.NET говорится, что:
«Выгрузка вызывается после того, как страница была полностью отрисована, отправлена клиенту и готов к удалению. На этом этапе свойства страницы, такие как Response и Request, выгружаются, и выполняется любая очистка. "
Я бы сказал, что" любая очистка "означает удаление элементов управления и т. д. Я не могу представить, что разработчики платформы ASP.NET не обратили бы на это внимания, и никто бы этого не заметил.
Нет, вы не должны вызывать Dispose для элементов управления, это уже делается. Вы несете ответственность за другие объекты Disposable, которые вы создаете вне структуры Control (FileStreams и т. Д.).
Это следует из общего принципа .NET: страница является владельцем Controls и, следовательно, требуется для каскадного (явного) Dispose для них . Для фактического кода вам нужно будет отразить код для Web.UI.Control.
Страница является владельцем элементов управления и поэтому должна каскадировать (явное) Dispose для них. Для фактического кода вам нужно будет отразить код для Web.UI.Control. Страница является владельцем элементов управления и поэтому должна каскадировать (явное) Dispose для них. Для фактического кода вам нужно будет отразить код для Web.UI.Control.