如何在最终的 TreeSet 中创建硬编码的不区分大小写的值,以便只有 "Banana" 而不是 "banana" 作为另一个值
how to create hard coded Case Insensitive Values in a final TreeSet so as to have only "Banana" not "banana" as another value
我想创建不区分大小写的 Fruits 最终 TreeSet 值。
有什么办法,我可以更改 fruits1-variable 声明中的某些内容,这样我可以获得所需的结果并可以避免方法 addFruits()
import java.util.Arrays;
import java.util.SortedSet;
import java.util.TreeSet;
public class Fruits {
public static SortedSet<String> fruits = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
//public static final SortedSet<String> fruits1 = new TreeSet<>(Arrays.asList("Apple", "Banana", "Orange", "Pineapple", "banana"));
public void addFruits(){
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
fruits.add("PineApple");
fruits.add("banana");
}}
您可以使用双括号初始化或静态块,但您的解决方案不会阻止您使用 final:
//double brace initialization
private static final Set<String> FRUITS = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER) {{
this.add("Apple");
this.add("Banana");
this.add("Orange");
this.add("PineApple");
this.add("banana");
}};
//Or a static block
static {
FRUITS.add("Apple");
FRUITS.add("Banana");
FRUITS.add("Orange");
FRUITS.add("PineApple");
FRUITS.add("banana");
}
另外考虑在 Collections#unmodifiableSet
中包装双括号初始化以防止其被修改
我想创建不区分大小写的 Fruits 最终 TreeSet 值。 有什么办法,我可以更改 fruits1-variable 声明中的某些内容,这样我可以获得所需的结果并可以避免方法 addFruits()
import java.util.Arrays;
import java.util.SortedSet;
import java.util.TreeSet;
public class Fruits {
public static SortedSet<String> fruits = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
//public static final SortedSet<String> fruits1 = new TreeSet<>(Arrays.asList("Apple", "Banana", "Orange", "Pineapple", "banana"));
public void addFruits(){
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
fruits.add("PineApple");
fruits.add("banana");
}}
您可以使用双括号初始化或静态块,但您的解决方案不会阻止您使用 final:
//double brace initialization
private static final Set<String> FRUITS = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER) {{
this.add("Apple");
this.add("Banana");
this.add("Orange");
this.add("PineApple");
this.add("banana");
}};
//Or a static block
static {
FRUITS.add("Apple");
FRUITS.add("Banana");
FRUITS.add("Orange");
FRUITS.add("PineApple");
FRUITS.add("banana");
}
另外考虑在 Collections#unmodifiableSet
中包装双括号初始化以防止其被修改