Java-泛型-ArrayList

Java ArrayList

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);

结果

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);

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>
	{

		@Override
		public 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>
		{

			@Override
			public 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]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值