list(集合)

 list  是一个接口,继承自collection,所有colletcion的方法都可以用。

list的最常用的实现类是ArrayList。ArrayList有如下方法

1. .add 向list中插入元素

public static void main(String[] args) {

        List list=new ArrayList();
        list.add("qiezi");
        list.add("hongshu");
        System.out.print("插入之前的list"+list);

        list.add(1,"apple");
        System.out.print("插入之后的list"+list);
    }

2. boolean addAll(int index, Collection<? extends E> c)

在指定位置插入另一个集合,

成功修改了该集合返回true,修改失败(当另一个集合为空),返回false

  public static void main(String[] args) {

        List list=new ArrayList();
        list.add("demo1");
        list.add("demo2");
        System.out.println("插入之前的list"+list);

        List list2=new ArrayList();
        list2.add("demo3");
        list2.add("demo4");
        System.out.println("插入之前的list2"+list2);
        List list3=new ArrayList();

        Boolean b= list.addAll(1,list2);
        System.out.println("插入之后的list"+list);
        System.out.println("插入之后的list2"+list2);
        System.out.println(b);


         b= list.addAll(1,new ArrayList());
        System.out.println("插入之后的list"+list);
        System.out.println(b);
    }

 

 3.E get(int index)

返回index位置的元素

 public static void main(String[] args) {

        List list=new ArrayList();
        list.add("demo1");
        list.add("demo2");
        System.out.println(list.get(2));
    }

4. int indexOf(Object o)

返回某元素第一次出现的位置

public static void main(String[] args) {

        List list=new ArrayList();
        list.add("demo1");
        list.add("demo2");
        System.out.println(list.indexOf("demo2"));
    }

 5.ListIterator<E> listIterator()

返回此列表元素的列表迭代器(按适当顺序)。

listIterator和iterator的区别是什么呢?下面这篇博客比较详细的分析,可以参考。

JAVA中ListIterator和Iterator详解与辨析_longshengguoji的专栏-CSDN博客_listiterator和iterator的区别

这里大概讲一下他们的区别:

当只需要遍历集合时,两个迭代器的功能都是一样。

但是listIterator迭代器只能用于List和他的实现子类,iterator迭代器可以用于所有的集合使用。

所不同的就是listIterator迭代器的功能会比iterator迭代器的功能要多。

listIterator迭代器可以在遍历集合时添加、修改和删除,而iterator迭代器在遍历集合时只有删除。

 遍历list

public static void main(String[] args) {

        List list=new ArrayList();
        list.add("demo1");
        list.add("demo2");
        Iterator iterator= list.listIterator();
        while (iterator.hasNext())
        {
            System.out.println(iterator.next());
        }
    }

 在遍历时删除

  public static void main(String[] args) {

        List list = new ArrayList();
        list.add("demo1");
        list.add("demo2");
        System.out.println("插入之前的list" + list);

        Iterator iterator = list.listIterator();    //迭代器对象
        while (iterator.hasNext()) {
            String a = (String) iterator.next();
            if (a.equals("demo1")) {
                iterator.remove();
            }
        }
        System.out.println(list);//发现list中的demo1被删除
    }

 6.

ListIterator<E> listIterator(int index)

从指定位置开始,返回此列表元素的列表迭代器(按适当顺序)。

和上面那个迭代器不同的就是多了一个参数,就是能控制迭代器开始的位置。

 7.

set(int index, E element)

在索引为index位置的元素更改为element元素


List<String> list=new ArrayList<String>();//不加<string>也可以,加了让list中只能存放string类型
list.add("string1");
System.out.print(list);

8.

List<E> subList(int fromIndex, int toIndex)

返回从索引fromIndex到toIndex的元素集合,包左不包右

        List list = new ArrayList();
        list.add("demo1");
        list.add("demo2");
        list.add("demo3");
        list.add("demo4");
        List list2=list.subList(1,3);
        System.out.print(list2);
    

 9.不使用迭代器遍历list

 List<String[]> list1=new ArrayList<String[]>();
        String[] array1={"a","b","c"};//要向list中插入的string类型的数组
        list1.add(array1);
        String[] array2={"d","e","f"};//要向list中插入的string类型的数组
        list1.add(array2);
        for(String[] test:list1)//遍历数组
        {
            System.out.print(test[0]);
        }

注意<>是为了限制列表中的元素类型,

List<Object []> new_item= new ArrayList<>();

new_item中只能放object的数组

List<Object []> new_item= new ArrayList<>();
Object [] a1={"name95",95,"loc95"};
Object [] a2={"name96",96,"loc96"};
Object [] a3={"name97",97,"loc97"};
new_item.add(a1);
new_item.add(a2);
new_item.add(a3);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值