Java 集合--List(列表)--ArrayList

 

Java 集合--List(列表)

 

ArrayList在内存中的存储方式与数组相似为连续的内存数组,而LinkList的存储方式与链表相似,为不连续的内存存储。

ArrayList与LinkedList的用法相似,以下Arraylist为例:

ArrayList的特点:
1.动态增长,长度不固定
2.在尾部插入或者删除数据非常有效,但在集合中间插入元素会消耗较多资源
3.适合于查找和更新元素
4.ArrayList中的元素可以为null

例程1:

// 用ArrayList存储编程语言的名称,并输出
		List list=new ArrayList();
		list.add("Java");
		list.add("C");
		list.add("C++");
		list.add("Go");
		list.add("swift");
		//输出列表中元素的个数
		System.out.println("列表中元素的个数为:"+list.size());
		
		//遍历输出所有编程语言
		System.out.println("**************************************");
		for(int i=0;i<list.size();i++){
			System.out.print(list.get(i)+",");
		}
		
		//移除列表中的C++
		System.out.println();
		//list.remove(2);
		list.remove("C++");
		System.out.println("**************************************");
		System.out.println("移除C++以后的列表元素为:");
		for(int i=0;i<list.size();i++){
			System.out.print(list.get(i)+",");
		}

例程2:


                   //需要将get()方法返回的类对象强转成需要的目标对象(Notice 类对象),才能访问Notice 中自己定义的方法
             System.out.println(i + 1 + ":" + ((Notice) (noticeList.get(i))).getTitle());

 // 创建Notice类的对象,生成三条公告
 		Notice notice1 = new Notice(1, "欢迎来到慕课网!", "管理员", new Date());
 		Notice notice2 = new Notice(2, "请同学们按时提交作业!", "老师", new Date());
 		Notice notice3 = new Notice(3, "考勤通知!", "老师", new Date());

 		// 添加公告
 		ArrayList noticeList = new ArrayList();
 		noticeList.add(notice1);
 		noticeList.add(notice2);
 		noticeList.add(notice3);
 		

 		// 显示公告
 		System.out.println("公告的内容为:");
 		for (int i = 0; i < noticeList.size(); i++) {
 			System.out.println(i + 1 + ":" + ((Notice) (noticeList.get(i))).getTitle());
 		}

 		System.out.println("**************************************");
 		// 在第一条公告后面添加一条新公告
 		Notice notice4 = new Notice(4, "在线编辑器可以使用啦!", "管理员", new Date());
 		noticeList.add(1, notice4);

 		// 显示公告
 		System.out.println("公告的内容为:");
 		for (int i = 0; i < noticeList.size(); i++) {
                   //需要将get()方法返回的类对象强转成需要的目标对象
 			System.out.println(i + 1 + ":" + ((Notice) (noticeList.get(i))).getTitle());
 		}

 		System.out.println("**************************************");
 		// 删除按时提交作业的公告
 		noticeList.remove(2);
 		// 显示公告
 		System.out.println("删除公告后的内容为:");
 		for (int i = 0; i < noticeList.size(); i++) {
 			System.out.println(i + 1 + ":" + ((Notice) (noticeList.get(i))).getTitle());
 		}
 		
 		//将第二条公告改为:Java在线编辑器可以使用啦!
 		System.out.println("**************************************");
 		//修改第二条公告中title的值
 		notice4.setTitle("Java在线编辑器可以使用啦!");
 		noticeList.set(1, notice4);
 		System.out.println("修改后公告的内容为:");
 		for (int i = 0; i < noticeList.size(); i++) {
 			System.out.println(i + 1 + ":" + ((Notice) (noticeList.get(i))).getTitle());
 		}
   	

例题:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值