java学习笔记 集合框架、linkedlist

Arraylist就像vector一样,不限长度

List接口:

实现了List接口

常用的声明 List heros = new ArrayList();

这样用接口引用子类对象 (多态)

ArrayList里的方法照常用,而且这样并没有把heros写死,就是可以通过new的不同 动态的调用对象,如后边的linkedlist也实现了List 的接口,就更灵活嘛。

泛型:

List<Hero> genericheros = new ArrayList<Hero>();

给一个容器指定它能装的类型,只能存那个类型,其他的存进去就会出错。

这样可以避免取出来的时候因为不知是什么类型而出现的转型出错。

要想指定一个容器之内能装两个或者以上类型,则把这两个类型写成拥有同一个父类,然后指定这个容器能装的是他们的父类类型即可。

遍历Arraylist 的几个方法:

一、正常的for

因为.size可以获取容器的大小

所以使用

for(int i = 0;i < heros.size();i ++) { Hero h=heros.get(i); }

二、迭代器

for(Iterator<Hero> it = heros.iterator();it.hasNext();) { Hero hero = (Hero) iterator.next(); }

三、增强型for

很多开发人员的首选,缺点是无法得知当前是第几个元素了,需要自己记录。

for(Hero h : heros) { System.out.println(h); }

在处理字符串中的数字的时候可以使用Integer.parse 贼好用。

作业:删掉名字中为8的倍数的对象。

package collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TextCollection {
	public static void main(String[] args) {
		List<Hero> heros = new ArrayList<Hero>();
		for(int i = 0;i < 100;i ++)
		{
			//if(i < 10)
			//	heros.add(new Hero("hero 0"+i));
			//else
				heros.add(new Hero("hero "+i));
			
		}
		for(Iterator<Hero> it = heros.iterator();it.hasNext();)
		{
			Hero h = (Hero) it.next();
			int x = Integer.parseInt(h.name.split(" ")[1]);
			/*String a=h.name;
			String b="" ;
			b+=a.charAt(5);
			b+=a.charAt(6);
			int x=(b.charAt(0)-'0')*10+(b.charAt(1)-'0');
			System.out.println(x);*/
			if(x % 8 == 0 && x != 0)
			{
				it.remove();
			}
		}

		for(Hero e : heros)
		{
			System.out.println(e.name);
		}
	}
}

linkedlist:

linkedlist也实现了list接口,也能照着之前那样使用。

但是linkedlist更牛逼的是实现了 Deque双向链表、Queue队列

deque,linkedlist本来就是一个双向链表形式的list,就是你只要声明了linkedlist就可以使用deque的功能

比如:

addLast 在后边添加

addFirst 在前面添加

getLast、getfirst 查看最后、最前的元素

removelast、removefirst 删除最后、最前的元素

就像linkedlist实现了list接口一样,它也实现了queue接口

Queue<Hero> q= new LinkedList<Hero>();

这样定义了之后奥

就可以使用

offer 在最后添加元素

poll 取出第一个元素

peek 查看第一个元素

虽然有queue的实现,但是没有栈的实现,需要用的时候就可以使用deque自己写。

发布了58 篇原创文章 · 获赞 20 · 访问量 5224

猜你喜欢

转载自blog.csdn.net/qq_41658124/article/details/96859112