ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下:
import java.util.ArrayList; // 引入 ArrayList 类ArrayList<E> objectName =new ArrayList<>(); // 初始化
//E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。
//objectName: 对象名。
1.添加元素
ArrayList 类提供了很多有用的方法,添加元素到 ArrayList 可以使用 add() 方法:
ArrayList<String> name=new ArrayList<>();name.add("link");name.add("tom");name.add("lucy");System.out.println(name);
结果
[link, tom, lucy]
2.访问元素
访问 ArrayList 中的元素可以使用 get() 方法:
String temp=name.get(1); //访问name的第二个元素System.out.println(temp);
java.util.arraylist。结果
tom
注意:数组的索引值从 0 开始。
3.修改元素
如果要修改 ArrayList 中的元素可以使用 set() 方法:
//修改元素name.set(2, "bobo");System.out.println(name);
结果
[link, tom, bobo]
4.删除元素
如果要删除 ArrayList 中的元素可以使用 remove() 方法:
//删除元素
name.remove(2);
System.out.println(name);
5.计算大小
如果要计算 ArrayList 中的元素数量可以使用 size() 方法:
//计算大小
int size=name.size();
System.out.println("size of name:"+size);
java泛型方法调用、6.迭代数组列表
我们可以使用 for 来迭代数组列表中的元素:
//迭代数组列表
for (int i=0;i<name.size();i++)
{System.out.println(name.get(i));
}
7.排序
Collections 类也是一个非常有用对类,位于 java.util 包中,提供的 sort() 方法可以对字符或数字列表进行排序。
以下实例对字母进行排序:
//排序Collections.sort(name); //按字母顺序排序for (int i=0;i<name.size();i++){System.out.println(name.get(i));}
以下实例对数字进行排序:
ArrayList<Integer> myNumbers = new ArrayList<Integer>();myNumbers.add(33);myNumbers.add(15);myNumbers.add(20);myNumbers.add(34);myNumbers.add(8);myNumbers.add(12);Collections.sort(myNumbers); // 数字排序for (int i : myNumbers) {System.out.println(i);}
另一种排序
ArrayList.sort(),需要传入一个Compator作为比较器,由调用者来规定谁前谁后。
1.需要自己写一个类,引用Comparaor
//第二种排序方法public static class MyComparator implements Comparator<name>{@Overridepublic int compare(name o1, name o2) {// TODO 自动生成的方法存根//compare的返回值,决定谁在前面//返回-1,则o1在前,返回1贼o2在前//返回0,表示o1 o2相等,应该也是o1在前if(o1.id>o2.id)return -1;if(o2.id>o1.id)return 1;return 0;
//第二种排序name n1=new name(123,"link");name n2=new name(456,"tom");ArrayList<name> Arrayname=new ArrayList<>();Arrayname.add(n1);Arrayname.add(n2);//System.out.println(Arrayname.get(1));class MyComparator implements Comparator<name>{@Overridepublic int compare(name o1, name o2) {// TODO 自动生成的方法存根//compare的返回值,决定谁在前面//返回-1,则o1在前,返回1贼o2在前//返回0,表示o1 o2相等,应该也是o1在前if(o1.id>o2.id)//id大的在前return -1;if(o2.id>o1.id)return 1;return 0;}}System.out.println("排序前:");for (int i=0;i<Arrayname.size();i++){System.out.println(Arrayname.get(i));}Arrayname.sort(new MyComparator());System.out.println("排序后:");for (int i=0;i<Arrayname.size();i++){System.out.println(Arrayname.get(i));}
结果
排序前:
name [id=123, name=link]
name [id=456, name=tom]
排序后:
name [id=456, name=tom]
name [id=123, name=link]
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态