当前位置: 首页 > 面试题库 >

Java不可修改的数组

刘和玉
2023-03-14
问题内容
final Integer[] arr={1,2,3};
arr[0]=3;
System.out.println(Arrays.toString(arr));

我尝试了上面的代码,看是否可以重新分配最终数组的变量[ ans :it可以是]。我知道,通过最终Integer
[]数组,这意味着我们无法分配除拥有的Integer []之外的另一个实例。我想知道是否有可能使数组变量也不能修改。


问题答案:

据我所知这是不可能的。

但是,有一个Collections.unmodifiableList(..)方法可创建例如的不可修改视图List<Integer>

如果要保证甚至不可修改视图列表的创建者也无法修改基础(可修改)列表,请查看Guava的ImmutableList。



 类似资料:
  • 问题内容: 我试图设置一个不可修改的。 在我的代码中,我有一个返回列表的方法。 此列表不应该修改,但我不想捕获unmodifiableList返回的异常。 它是现有代码,我必须对其进行转换以返回不可修改的列表,但是如果调用了“ add”方法,则不必捕获任何异常。 首先,我创建一个类,该类实现List来覆盖“ add”方法以记录异常而不是捕获异常。 但是我不知道如何正确地实例化它。 问题答案: 如果

  • 本文向大家介绍Objective C中可修改和不可以修改类型。相关面试题,主要包含被问及Objective C中可修改和不可以修改类型。时的应答技巧和注意事项,需要的朋友参考一下 答案:可修改不可修改的集合类。这个我个人简单理解就是可动态添加修改和不可动态添加修改一样。 比如NSArray和NSMutableArray。前者在初始化后的内存控件就是固定不可变的,后者可以添加等,可以动态申请新的内存

  • 问题内容: 我在下面有此代码,并且通过执行以下行来获取ConcurrentModificationException: 代码: 堆栈是: 恰好在foreach行上: 我不明白为什么会发生此错误,因为我没有修改列表。 问题答案: 要知道,是 不是抄袭 收集数据,但只有包装原始集合在一个特殊的包装。因此,如果您修改原始集合,则会出现此错误。 如果要创建真正独立的不可修改的集合实例:

  • 我正在编写一个扑克游戏,并将所有的牌存储在类Deck中创建的数组列表中: ... 我想使用另一个类--Hand--从arraylist中绘制前五个元素,并将它们放入名为myHand的新arraylist中: 。。。到目前为止一切顺利。当我显示主类的手数组列表时,我得到了一副牌中的前五张牌。然而,当我从deck类显示这副牌时(在调用Draw()方法之后),所有52张牌仍然在那里。 如果我在Hands

  • 问题内容: public class StackOverFlow { public static void main(String[] args) { ArrayList al = new ArrayList (); al.add(“A”); al.add(“B”); markAsNull(al); System.out.println(“ArrayList elements are “+al);