Android开发 - List类中ArrayList实现类的动态数组操作与ArrayList<Fragment>的窗口列表操作解析

什么是ArrayList

  • ArrayListList 接口的一个常用实现类,它基于动态数组实现元素的存储和操作

主要特点和用途

  1. 动态大小ArrayList的大小可以根据需要动态增长或缩减,与普通的数组不同,不需要预先指定数组的大小

  2. 泛型支持:可以使用泛型来指定ArrayList中存储的元素类型,例如ArrayList<String>表示一个字符串类型的动态数组

  3. 数据操作:提供了丰富的方法来操作数据,如添加删除获取元素等。可以使用add()方法添加元素,使用remove()方法删除元素,使用get()方法获取指定位置的元素

  4. 迭代和遍历:可以通过迭代器(Iterator)增强型for循环来遍历ArrayList中的所有元素,方便进行数据处理和操作

  5. 适用范围:在Android开发中,ArrayList广泛应用于存储和操作各种数据类型,如数据列表Fragment列表视图列表

ArrayList的使用方式

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        // 创建一个 ArrayList
        List<String> arrayList = new ArrayList<String>();

        // 添加元素到列表尾部
        arrayList.add("Apple");
        arrayList.add("Banana");
        arrayList.add("Orange");

        // 在指定位置插入元素
        arrayList.add(1, "Mango");

        // 遍历 ArrayList 并输出元素
        for (String fruit : arrayList) {
            System.out.println("Fruit: " + fruit);
        }

        // 删除指定位置的元素
        arrayList.remove(0);

        // 判断元素是否存在
        boolean containsBanana = arrayList.contains("Banana");
        System.out.println("Contains Banana: " + containsBanana);

        // 获取列表大小
        int size = arrayList.size();
        System.out.println("ArrayList size: " + size);
    }
}

ArrayList的三种遍历方式

//迭代器遍历
Iterator<Integer> it = numbers.iterator();
while(it.hasNext()){
    System.out.print(it.next() + " ");
} 
 
//索引值遍历
for(int i = 0; i < numbers.size(); i++){
   System.out.print(numbers.get(i) + " ");
}
 
//增强型for循环遍历
for(Integer number : numbers){
   System.out.print(number + " ");
}
  • 遍历ArrayList时,通过索引值遍历效率最高增强型for循环遍历次之迭代器遍历最低

ArrayList<Fragment>的使用

  • ArrayList<Fragment>通常用于管理和动态操作多个Fragment对象。以下是一个简单的使用案例,展示了如何使用ArrayList<Fragment>管理一组Fragment并将它们传递给一个PagerAdapter用于ViewPager的显示

  • 启动类Java代码

    import androidx.appcompat.app.AppCompatActivity;
    import androidx.viewpager.widget.ViewPager;
    import android.os.Bundle;
    
    import java.util.ArrayList;
    
    public class MainActivity extends AppCompatActivity {
        private ViewPager viewPager;
        private List<Fragment> fragmentList;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    		
            //创建了一个ViewPager用于显示多个Fragment
            viewPager = findViewById(R.id.viewPager);
    
            //初始化Fragment列表
            //初始化了一个包含三个Fragment的ArrayList<Fragment>(这里假设Fragment1、Fragment2和Fragment3是已经实现的Fragment类)
            fragmentList = new ArrayList<Fragment>();
            fragmentList.add(new Fragment1());
            fragmentList.add(new Fragment2());
            fragmentList.add(new Fragment3());
    
            //设置ViewPager的适配器
            //创建了FragmentPagerAdapter适配器,并将FragmentManager和ArrayList<Fragment>传递给它
            FragmentPagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager(), fragmentList);
            //最后,将适配器设置给ViewPager,这样就可以在ViewPager中显示这三个Fragment了
            viewPager.setAdapter(adapter);
        }
    }
    
  • 布局xml代码

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <androidx.viewpager.widget.ViewPager
            android:id="@+id/viewPager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:overScrollMode="never" />
    </LinearLayout>
    
  • 这种方式可以灵活地管理多个Fragment的显示顺序和数量,适用于需要在同一个屏幕上切换多个不同内容的场景,如主页的不同模块或者引导页等

posted @ 2024-07-30 16:55  阿俊学JAVA  阅读(3)  评论(0编辑  收藏  举报