Java 正在获取IndexOutofBoundsException,无法找出原因

Java 正在获取IndexOutofBoundsException,无法找出原因,java,Java,我得到索引越界异常,无法找出原因,请帮助我。我正在尝试遍历列表。列表大小为2。我正在尝试创建动态表并打印列表 public void display(ArrayList list) { TableLayout tl = (TableLayout) findViewById(R.id.main_table); for(int i = 0;i<=list.size(); i++){ EmployeeBean

我得到索引越界异常,无法找出原因,请帮助我。我正在尝试遍历列表。列表大小为2。我正在尝试创建动态表并打印列表

 public void display(ArrayList list) {

            TableLayout tl = (TableLayout) findViewById(R.id.main_table);

            for(int i = 0;i<=list.size(); i++){

                EmployeeBean empList = (EmployeeBean) list.get(i);

                int count = 0;

                TableRow tr = new TableRow(this);
                tr.setId(100+count);
                tr.setLayoutParams(new LayoutParams(
                        LayoutParams.WRAP_CONTENT,
                        LayoutParams.WRAP_CONTENT));
                tr.setClickable(true);

                final TextView empName = new TextView(this);
                empName.setId(200+count);
                empName.setText(empList.getName());
                tr.addView(empName);

                final TextView empStream = new TextView(this);
                empStream.setId(200+count);
                empStream.setText(empList.getStream());
                tr.addView(empStream);

                final TextView empLevel = new TextView(this);
                empLevel.setId(200+count);
                empStream.setText(empList.getLevel());

                final TextView empDesignation = new TextView(this);
                empDesignation.setId(200+count);
                empDesignation.setText(empList.getDesignation());

                tl.addView(tr, new TableLayout.LayoutParams(
                        LayoutParams.WRAP_CONTENT,
                        LayoutParams.WRAP_CONTENT));
               count++;

               tr.setOnClickListener(new OnClickListener() {

                    public void onClick(View v) {

                        outpuText = new TextView(MainActivity.this);
                        outpuText.setText("Name: " + empName.getText() + "\n"
                                + "Stream: " + empStream.getText() + "\n" + "Level: "
                                + empLevel + "\n" + "Designation :" + empDesignation);
                        setContentView(outpuText);

                    }
                });

            }
在for循环中使用
list.size()-1
而不是
list.size()

for(int i = 0;i<=(list.size() - 1); i++)

for(int i=0;i
for(int i=0;i由于
i
从零开始,并且
size()
将返回数组中对象的计数,因此您的
for
循环应修改为:

for(int i = 0; i < list.size(); i++)
for(int i=0;i
索引从0开始,您正在测试列表大小是否“小于或等于”

它将在三次迭代(0,1,2)中返回true

将“for”语句更改为

for(int i = 0; i<list.size(); i++){
for(int i=0;i
public void显示(ArrayList列表){
TableLayout tl=(TableLayout)findviewbyd(R.id.main_table);

for(int i=0;i6)的答案都指向同一件事!
for(int i = 0;i<=(list.size() - 1); i++)
for(int i = 0;i<list.size(); i++)
for(int i = 0;i<=list.size(); i++)
int size = list.size();
for(int i = 0;i<size; i++)
for(int i = 0; i < list.size(); i++)
for(int i = 0; i<list.size(); i++){
public void display(ArrayList list) {

         TableLayout tl = (TableLayout) findViewById(R.id.main_table);

         for(int i = 0;i<=list.size(); i++){