我必须按字母顺序对数组中的每个项目进行排序
输入: [bcdef、dbaqc、abcde、omadd、bbbbb] 输出: [bcdef、abcdq、abcde、addmo、bbbbb]
我写了下面的代码,但我觉得它很冗长(长)。
您能告诉我另一种方式,用更短的代码吗?
谢谢。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import static java.lang.String.copyValueOf;
public class Main {
public static void main(String[] args) {
String[] stringsArray = { "bcdef", "dbaqc", "abcde", "omadd", "bbbbb"};
System.out.println(Arrays.toString(stringsArray));
List<String> list = Arrays.stream(stringsArray).map((String s)->{
char[] charArray = s.toCharArray();
Arrays.sort(charArray);
return copyValueOf(charArray);
}).collect(Collectors.toList());
ArrayList<String> arrayList = new ArrayList<String>(list);
stringsArray = Arrays.copyOf(arrayList.toArray(),arrayList.size(),String[].class);
System.out.println(Arrays.toString(stringsArray));
}
}
Run Code Online (Sandbox Code Playgroud) 如何显示抽象类 Confused("ConfusedValue") 中“name”非静态字段的值?我尝试了3种方法,但都有错误。我只能显示 Confuslable 的名称值(“ConfusableValue”)
interface Confusable {
String name = "ConfusableValue";
String confuse();
}
abstract class Confused {
String name = "ConfusedValue";
abstract Object confuse();
}
public class Test extends Confused implements Confusable {
public static void main(String[] args) {
Test a = new Test();
// --- OK
System.out.println("Confusable.name: " + Confusable.name);
// --- Errors
System.out.println("name: " + name); // Error : The field name is ambiguous
System.out.println("Confused.name: " + Confused.name); // Error : Cannot make a static reference …Run Code Online (Sandbox Code Playgroud)