ArrayList常用方法总结

2022-08-29 08:45:42

在这个中介绍什么是范型
2. 什么是范型
3. static ArrayList array=new ArrayList <>();这样是array显示为Student类型。
范型是说所操作的数据类型,被指定为一个参数,本质是参数化类型。这种参数化类型,在类,接口,方法的创建中,可以分别称为范型类,范型接口,范型方法。
在写1,ArrayList list=new ArrayList<>();
2,ArrayList list=new ArrayList();
第一种表示的是为Object类型的集合则可以存入任何类型比如:list.add(new Text2())。
第二种表示的是存入的是String类型的集合,但他只能存入的是String类型的其他的会报错。
在这里插入图片描述
在这里插入图片描述
在集合Collection中有两个接口分别为list和Set,在接口下面分别有两个抽象类分别为AbstractList和AbstractSet,他们分别继承一部分接口的方法,在AbstractList 中有两个子类ArrayList和Vector,在AbstractSet中有两个子类有TreeSet和HashSet。在这些方法中全部实现了抽象类中的方法。
在ArrayList中常用方法:
1,add(Object element)向列表的尾部添加指定元素。
get(int index)返回列表中指定位置,index从0开始。
packagecom.jd.tt;

import java.util.ArrayList;
import java.util.Iterator;

public class Text2 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
list.add(“Tom”);
list.add(“jim”);
for(int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
}
}
结果是:Tom jim
在add(int a,Object element)中是在指定位置添加元素,其后的元素往后移。
在这里插入图片描述2,int size();为用于获取集合中有多少个元素。
packagecom.jd.tt;

import java.util.ArrayList;
import java.util.Iterator;

public class Text2 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
list.add(“Tom”);
list.add(“jim”);
System.out.println(list.size());
}
}
结果为:2
3,set(int i,Object element)将索引位置元素替换为元素element并返回被替换的元素。 如下显示的jim被替代了。
在这里插入图片描述
4,clear()从列表中移除所有的元素。下面结果显示为0则就表明clear()移除了所有的元素。

packagecom.jd.tt;

import java.util.ArrayList;
import java.util.Iterator;

public class Text2 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
list.add(“Tom”);
list.add(“jim”);
list.clear();//清空List集合中的所有元素
int length=list.size();
System.out.println(length);//输出0,jiner shuo ming clear用于清空集合元素

}

}
在这里插入图片描述
5,isEmpty();是显示集合中是否有元素。集合容器没有元素,则显示false
packagecom.jd.tt;

import java.util.ArrayList;
import java.util.Iterator;

public class Text2 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
list.add(“Tom”);
list.add(“jim”);
boolean flag = list.isEmpty();//集合容器没有元素,则true
System.out.println(flag);
}
}

在这里插入图片描述
6,remove(0);删除指定索引(从0开始)位置的元素,并将元素返回,并后面元素前移.在这个中
1,String str = list.remove(0);//删除指定索引(从0开始)位置的元素,并将元素返回,并后面元素前移
System.out.println(list.get(0));
System.out.println(str);
这个是str是保存的删除的信息。
2,boolean flag=list.remove(“ABC”);//删除元素,成功返回的值为true

packagecom.jd.tt;

import java.util.ArrayList;
import java.util.Iterator;

public class Text2 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
list.add(“Tom”);
list.add(“jim”);
String str = list.remove(0);//删除指定索引(从0开始)位置的元素,并将元素返回,并后面元素前移
System.out.println(list.get(0));
}
}
在这里插入图片描述
7,contains(Obiect o);用来判断集合容器中是否含所有参数元素。
思考:判断过程是什么?
在点击contains后查看
packagecom.jd.tt;

import java.util.ArrayList;
import java.util.Iterator;

public class Text2 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
list.add(“Tom”);
list.add(“jim”);
boolean flag = list.contains(“Jim”);
System.out.println(flag);
}
}

public boolean contains(Object o) {
return indexOf(o) >= 0;
}

**public int indexOf(Object o) {**
    return indexOfRange(o, 0, size);
}

int indexOfRange(Object o, int start, int end) {
    Object[] es = elementData;
    if (o == null) {
        for (int i = start; i < end; i++) {
            if (es[i] == null) {
                return i;
            }
        }
    } else {
        for (int i = start; i < end; i++) {
            **if (o.equals(es[i])) {**
                return i;
            }
        }
    }
    return -1;
}

执行“String str1="abc"后,JVM在常量池中开辟空间存放一个”abc“的字符串空间让str指向该对象。
在这个上面有Object o=“Tom”;Object o=new String (”Tom“);为上转型类型,父类的引用指向子类所创建的对象,其中o为Object类型的引用变量,指向String类型所创建的对象,如o.equals(es[i])中o.equals()表面上是调用Object()类型中的方法,实则是调用上转型的对象String中重写的equals()方法,也就是多态。
在这里插入图片描述

在这里插入图片描述
8,Iterator iterator = list.iterator();//将List集合中元素转到iterator变量中就可遍历。
packagecom.jd.tt;

import java.util.ArrayList;
import java.util.Iterator;

public class Text2 {
public static void main(String[] args) {
ArrayList list=new ArrayList();
list.add(“Tom”);
list.add(“jim”);
Iterator iterator = list.iterator();//将List集合中元素转到iterator变量中
while(iterator.hasNext()) {//判断当前“指针”下面是否还有元素
System.out.println(iterator.next());//如果指针下面有元素,则移动指针并获取相应位置的元素
}

}

}
在这里就是在这里面在Lterator中用hasNext()是为了判断在Lterator是否有元素存在,有就由next()读取信息读取一个,在hasNext就会在判断在读取后的元素中是否还有元素存在,有就由next()指向下一个元素在读取信息,就这样依次进行直到由hasNEext判断没有了就结束进程。
在这里插入图片描述

  • 作者:“^飞鸿翔天^”
  • 原文链接:https://blog.csdn.net/qq_43952610/article/details/98850845
    更新时间:2022-08-29 08:45:42