Java 如何从另一个数组中获取包含所有其他值的数组?

Java 如何从另一个数组中获取包含所有其他值的数组?,java,Java,我有一个数组Array1[“4”、“+”、“5”、“-”、“3”],还有一个循环,它将所有具有偶数索引的值添加到Array2: for (int n = 0; n > Array1.length; n += 2) { Array2.add(Integer.parseInt(Array1[n])); } 期望的结果是Array2包含[4,5,3]。但是,当System.out.println(Array2.get(0)),我得到此异常: Exception in thread "A

我有一个数组Array1
[“4”、“+”、“5”、“-”、“3”]
,还有一个循环,它将所有具有偶数索引的值添加到Array2:

for (int n = 0; n > Array1.length; n += 2) {
    Array2.add(Integer.parseInt(Array1[n]));
}
期望的结果是Array2包含
[4,5,3]
。但是,当
System.out.println(Array2.get(0)),我得到此异常:

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at java.util.ArrayList.rangeCheck(ArrayList.java:604)
    at java.util.ArrayList.get(ArrayList.java:382)
    at tests.Calculator$ButtonClickListener.actionPerformed(Calculator.java:289)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6505)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6270)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4861)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:688)
    at java.awt.EventQueue$3.run(EventQueue.java:686)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:702)
    at java.awt.EventQueue$4.run(EventQueue.java:700)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
我在干什么?如何解决这个问题?

您想要:

String[] Array1 = new String[]{"4", "+", "5", "-", "3"};
List<Integer> Array2 = new ArrayList<Integer>();
for (int n = 0; n < Array1.length; n += 2) {
      // look out ^
      Array2.add(Integer.parseInt(Array1[n]));
}
String[]Array1=新字符串[]{“4”、“+”、“5”、“-”、“3”};
List Array2=新的ArrayList();
对于(int n=0;n
按照惯例,Java中的变量名以小写开头,因此
array1
,而不是
array1


Array1
看起来像一个类的名称。

您只需将
n>Array1.length
更改为:
n
在for循环中。

for
的第二部分不应该是
n
?在文本之前添加//代码中的文本会出错;-)