day8集合(1)

day8集合

一:Collection接口

Collection接口是集合中的顶层接口

​ Collecton接口常用的子接口有:List接口、Set接口

​ List接口常用的子类有:ArrayList类、LinkedList类

​ Set接口常用的子类有:HashSet类、LinkedHashSet类

1.1 Collection接口的基本方法

Collection<String> coll = new ArrayList<String>();
//1,往集合中添加对象元素。add(Object);
coll.add("ityouxin1");
coll.add("ityouxin2");
coll.add("ityouxin3");		
//2,删除。
coll.remove("ityouxin2");		
//3,判断是否包含。
System.out.println(coll.contains("ityouxin11"));		
//4,清除。
coll.clear();
//把集合打印一下。
System.out.println(coll);//[ityouxin1, ityouxin2, ityouxin3]

二:List接口

1、 实现List接口的集合类中的元素是有序的,且允许重复。

2、 List集合中的元素都对应一个整数型的序号记载其在集合中的位置,可以根据序号存取集合中的元素。

JDK API所提供的List集合类常用的有:

ArrayList(重点,必须掌握)

LinkedList

Vector(不常用)

常用方法 :

void add(int index, E element) :在指定的索引处插入一个元素;
E get(int index) :根据索引得到元素
ListIterator<E> listIterator?() :
E remove(int index) : 删除指定索引处的元素;
E set(int index, E element) :修改指定索引处元素
List<E> subList(int fromIndex, int toIndex) : 在指定的范围内截取出来一个小列表;

二: Iterator迭代器

​ Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。

集合中把这种取元素的方式描述在Iterator:

​ 常用方法:

​ hasNext()方法:用来判断集合中是否有下一个元素可以迭代。如果返回true,说明可以迭代。

​ next()方法:用来返回迭代的下一个元素,并把指针向后移动一位。

//1,创建集合对象。
Collection<String> coll = new ArrayList<String>();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");

//2.获取容器的迭代器对象。通过iterator方法。
Iterator it = coll.iterator();

//3,使用具体的迭代器对象获取集合中的元素。参阅迭代器的方法
while(it.hasNext()){
	System.out.println(it.next());
}

/* 
迭代器for循环的形式的使用
for (Iterator it = coll.iterator(); it.hasNext();  ) {
	System.out.println(it.next());
}
*/

注意:在进行集合元素取出时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将发生java.util.NoSuchElementException没有集合元素的错误

三:增强for循环

​ 格式:for(元素的数据类型 变量 : Collection集合or数组){

}

练习一:遍历数组
int[] arr = new int[]{11,22,33};
for (int n : arr) {//变量n代表被遍历到的数组元素
	System.out.println(n);
}
练习二:遍历集合
Collection<String> coll = new ArrayList<String>();
coll.add("ityouxin1");
coll.add("ityouxin2");
coll.add("ityouxin3");
coll.add("ityouxin4");
for(String str : coll){//变量Str代表被遍历到的集合元素
	System.out.println(str);
}

四:泛型

​ 泛型用来灵活地将数据类型应用到不同的类、方法、接口当中。将数据类型作为参数传递。

​ 好处:避免了类型强制转换的麻烦.

publicclass GenericDemo {
	publicstaticvoid main(String[] args) {
		Collection<String> list = new ArrayList<String>();
		list.add("abc");
		list.add("ityouxin");
		//list.add(5);//当集合明确类型后,存放类型不一致就会编译报错
		//集合已经明确具体存放的元素类型,那么在使用迭代器的时候,迭代器也同样会知道具体遍历元素类型
		Iterator<String> it = list.iterator();
		while(it.hasNext()){
	String str = it.next();
//当使用Iterator<String>控制元素类型后,就不需要强转了。获取到的元素直接就是String类型
			System.out.println(str.length());
		}
	}
}

一:数据结构

​ 1.1List集合存储数据的结构

​ 1.2LinkedList集合

​ LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合。实际开发中对一个集合元素的添加与删除经常涉及到首尾操作,而LinkedList提供了大量首尾操作的方法。

[外链图片转存失败(img-Zo4pwIfz-1565228071887)(C:\Users\李红兴\Desktop\1.png)]

Linked是List的子类,List的方法LinkedList都来可以使用

	LinkedList<String> link = new LinkedList<String>();
		//添加元素
		link.addFirst("abc1");
		link.addFirst("abc2");
		link.addFirst("abc3");
		//获取元素
		System.out.println(link.getFirst());
		System.out.println(link.getLast());
		//删除元素
		System.out.println(link.removeFirst());
		System.out.println(link.removeLast());
		
		while(!link.isEmpty()){ //判断集合是否为空
			System.out.println(link.pop()); //弹出集合中的栈顶元素
       }

二:Set接口

​ 2.1HashSet集合

​ 2.2Hash集合存储数据结构(哈希表)

​ 2.3HashSet存储Java中的类型元素

(!link.isEmpty()){ //判断集合是否为空
System.out.println(link.pop()); //弹出集合中的栈顶元素
}


二:Set接口

​	2.1HashSet集合

​	2.2Hash集合存储数据结构(哈希表)

​	2.3HashSet存储Java中的类型元素

​	2.4HashSet存储自定义类型元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值