我是一名帮助年轻学生学习编程的学生。其中一些已经被赋予了代码:
public class student {
public static void main(String[] args) {
ArrayList<char[]> data1 = new ArrayList<char[]>();
ArrayList<char[]> data2 = createData();
displayData(data2);
}
public static ArrayList<char[]> createData(){
ArrayList<char[]> res = new ArrayList<char[]>();
for(int index = 'A'; index<='Z'; index++) {
char[] temp = new char[1+(index - 'A')];
for(int count=0;count<temp.length;count++) {
temp[count] = (char) ('A' + count);
}
res.add(temp);
}
return res;
}
public static void displayData(ArrayList<char[]> values) {
}
这是为了打印出如下字母:
A
AB
ABC
等 但是我本人对displayData()方法中的内容有麻烦。
感谢您的帮助,谢谢!
答案 0 :(得分:2)
您可以这样写:
public static void displayData(ArrayList<char[]> values) {
for(char[] s : values){
for(char c : s){
System.out.print(c);
}
System.out.println();
}
}
这应该给您想要的结果。
第一个高级功能是遍历ArrayList的每个条目。第二个for方法是遍历ArrayList项之一内的每个项。
答案 1 :(得分:2)
您可以单功能完成
<div class="ilustration">
<h1 class="hover_effect">
First Text <br />
<span class="cor">Second Text</span>
</h1>
</div>
答案 2 :(得分:1)
您可以将问题分为两部分:
第1部分-。打印字母:
private static void printAlphabet(char[] alphabet) {
for(char c : alphabet) {
System.out.print(c);
}
}
第2部分-。使用最后一种方法,您可以打印所有字母,每次打印字母后都在末尾添加新行:
public static void displayData(ArrayList<char[]> values) {
for (char[] alphabet: values) {
printAlphabet(alphabet);
System.out.println();
}
}
奖金:您可以使用Stream和函数式编程:
public static void displayDataFunctional(ArrayList<char[]> values) {
values.stream().forEach((alphabet) -> printAlphabet(alphabet));
}
建议:根据约定,Java类型名称通常以大写字母开头。
答案 3 :(得分:1)
一点点改进
使用列表:
import java.util.ArrayList;
import java.util.List;
public class Student {
public static void main(String[] args) {
List<String> lines = createList((int) 'A', (int) 'Z');
print(lines);
}
public static List<String> createList(int min, int max) {
List<String> lines = new ArrayList<>();
for (int i = 0; i <= max - min; i++) {
StringBuilder s = new StringBuilder();
for (int j = min; j <= min + i; j++) {
s.append(Character.toString((char) j));
}
lines.add(s.toString());
}
return lines;
}
public static void print(List<String> lines) {
for (String line : lines)
System.out.println(line);
}
}
工作:https://www.jdoodle.com/embed/v0/21iL
无列表:
public class Student {
public static void main(String[] args) {
print((int) 'A', (int) 'Z');
}
public static void print(int min, int max) {
for (int i = 0; i <= max - min; i++) {
StringBuilder s = new StringBuilder();
for (int j = min; j <= min + i; j++) {
s.append(Character.toString((char) j));
}
System.out.println(s.toString());
}
}
}
工作:https://www.jdoodle.com/embed/v0/21iP
使用流:
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class Student {
public static void main(String[] args) {
Stream<String> lines = createList((int) 'A', (int) 'Z');
lines.forEach(System.out::println);
}
public static String row(int i, int min, int max) {
StringBuilder s = new StringBuilder();
IntStream.rangeClosed(min, min + i).forEach(j -> s.append(Character.toString((char) j)));
return s.toString();
}
public static Stream<String> createList(int min, int max) {
return IntStream.rangeClosed(0, max - min).mapToObj(i -> row(i, min, max));
}
}
答案 4 :(得分:1)
完成它的一些方法如下:
for
循环: public static void displayData(ArrayList<char[]> values) {
for (char[] arr : values) {
for (char ch : arr) {
System.out.print(ch);
}
System.out.println();
}
}
for
循环: public static void displayData(ArrayList<char[]> values) {
for (int i = 0; i < values.size(); i++) {
for (int j = 0; j < values.get(i).length; j++) {
System.out.print(values.get(i)[j]);
}
System.out.println();
}
}
for
循环和基于索引的for
循环: public static void displayData(ArrayList<char[]> values) {
for (char[] arr : values) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
System.out.println();
}
}
-或-
public static void displayData(ArrayList<char[]> values) {
for (int i = 0; i < values.size(); i++) {
for (char ch : values.get(i)) {
System.out.print(ch);
}
System.out.println();
}
}
for
循环和String(char[])
构造函数: public static void displayData(ArrayList<char[]> values) {
for (char[] arr : values) {
System.out.println(new String(arr));
}
}
public static void displayData(ArrayList<char[]> values) {
values.stream().forEach(arr -> System.out.println(new String(arr)));
}
答案 5 :(得分:1)
一个较短的lambda
public void displayData(ArrayList<char[]> values) {
values.stream().forEach( arr -> System.out.println( arr ) );
}