是否可以在不迭代整个数组的情况下将字符串添加到String数组的开头。
唯一的方法是维护环形缓冲区。也就是说,您有一个计数器,它记住起始位置,然后移动它而不是移动数组中的所有条目。这仅适用于您重新定义“开始”的含义。
请参阅ArrayDeque的源代码,其中包含三个字段
86 /**
87 * The array in which the elements of the deque are stored.
88 * The capacity of the deque is the length of this array, which is
89 * always a power of two. The array is never allowed to become
90 * full, except transiently within an addX method where it is
91 * resized (see doubleCapacity) immediately upon becoming full,
92 * thus avoiding head and tail wrapping around to equal each
93 * other. We also guarantee that all array cells not holding
94 * deque elements are always null.
95 */
96 private transient E[] elements;
97
98 /**
99 * The index of the element at the head of the deque (which is the
100 * element that would be removed by remove() or pop()); or an
101 * arbitrary number equal to tail if the deque is empty.
102 */
103 private transient int head;
104
105 /**
106 * The index at which the next element would be added to the tail
107 * of the deque (via addLast(E), add(E), or push(E)).
108 */
109 private transient int tail;
因此,添加到开始像这样
224 public void addFirst(E e) {
225 if (e == null)
226 throw new NullPointerException();
227 elements[head = (head - 1) & (elements.length - 1)] = e;
228 if (head == tail)
229 doubleCapacity();
230 }
312 /**
313 * @throws NoSuchElementException {@inheritDoc}
314 */
315 public E getFirst() {
316 E x = elements[head];
317 if (x == null)
318 throw new NoSuchElementException();
319 return x;
320 }
注意:它移动头部,而不是将所有元素向下移动阵列。
问题内容: 假设我有很多字符串变量(例如100): 我想将这些String变量添加到ArrayList中,我现在正在做的是 我很好奇,有没有办法使用循环?例如。 问题答案: 使用数组: 这个想法非常流行,以至于有内置的方法可以做到这一点。例如: 会将您的数组元素添加到现有列表中。如果只需要一个仅包含数组元素的列表,则可以一行执行:
是否可以将JavaScript中的UTF-8 BOM预置为生成的文本? 是的,在这种情况下,我确实需要UTF-8 BOM。
本文向大家介绍在Java中将String的ArrayList转换为String数组,包括了在Java中将String的ArrayList转换为String数组的使用技巧和注意事项,需要的朋友参考一下 首先,让我们设置字符串的ArrayList- 现在,使用toArray()转换为字符串数组- 示例 以下是在Java中将String的ArrayList转换为String数组的程序- 输出结果
问题内容: 因此,我一直在致力于在字符串之前添加0的命名约定。我正在尝试将所有内容都分解为if语句之前的快捷方式。在这里,我在整数前打印0,给我一个00005的答案。 现在,我想对字符串执行此操作。例如,如果String n =“ 5”; 如果String n =“ 20”,它将给出00005的答案;它将是00020。我不希望使用整数方法将字符串更改为and int,然后再更改回字符串。任何帮助,
因此,对于我的学校项目,我们将使用SQL数据库,并在JFrame面板上显示值。 为了在JTable中显示数据,我们必须要求下一个语法:(def)
问题内容: 我目前正在以指导学生编程的方式教学生。我告诉他们,他们可以在Oracle代码约定中找到大多数约定。 在我的上一教程中,一个学生问: 要么 是按惯例写的还是有区别的。我以前从未看过第一个版本,因此,我非常确定第二个版本是一个约定。但是我没有消息来源。 您能给我一个明确说明惯例中的哪一个的来源(最好是来自oracle,例如我上面链接的页面)吗? 两个表达式的等价 我知道这两个表达式是等效的