集合框架

集合框架(集合只能存放对象---过程有有其他类型如int底层自动转换成  对象)

集合框架:理解上来看集合框架为增强型数组,功能与数组相同

  在不知道程序运行时会需要多少对象,或者是需要更复杂方式存储对象


1 List

(无序,不可重复)

List特点为: 1有序 2可重复

1)ArrayList:便于数组遍历 实现类长度可变的数组,按照索引使用(数据列表)

 此为实现类父类型为List 所以可以使用接口做类型子类实例化


List list=new ArrayList();

   

 在List ,ArratList中包含以下方法

  ①添加方法 void add(对象);

    boolean  add(int index,对象);

    注:

  ②获取列表元素个数(数组中用length)

     int size();

  ③获取元素 Object get(int index);

    注:方法中使用填入下表 get(下表);返回的为集合中对象

  ④判断表中是否有指定元素 boolean contains(Object ob);

  ⑤删除列表中元素 boolean remove(Object ob);

      Object remove(int index);

   ⑥清空所有数据  void clear()

  ⑦判断集合是否| 没有 |元素 boolean isEmptry();

    注:第二种删除为按照下标删除返回值为删除元素

实现遍历:

 方法1:使用for循环实现遍历

	for(int i=0;i<lis.size();i++){
	//使用对象.get(下标),获得集合元素
		Object obj=lis.get(i);
	//此处运用到强制转换
	ArrayList1_2 Q=(ArrayList1_2)obj;
//强制转换成需要的类型在用其类 . 出方法
	Q.show();
}
   方法2:使用增强for(foreach)

	for(Object obj:lis){
		ArrayList1_2 tt=(ArrayList1_2)obj;
		tt.show();
	}
 方法3:使用迭代器iterator();

Iterator ite=lis.iterator();
while(ite.hasNext()){//查询是否有下一个
	Object obj=ite.next();//返回下一个元素
	ArrayList1_2 tt=(ArrayList1_2)obj;
	tt.show();
}





2)LinkedList:便于对集合的修改,操作(链式列表)

  因为LinkedList内有特定的方法所以不能使用接口做类型子类实例化

 LinkedList list=new LinkedList();

特有方法为:

  ①在列表首部添加元素

   void addFirst(Object ob);

在列表尾部添加元素

  void  addLast(Object ob);

   ②返回列表中的第一个元素

    Object getFirst();

返回列表中的最后一个元素

  Object getLat();

   ③删除列表中第一个元素

    Object removeFirst();

 删除列表中最后一个元素

  Object removeLast();

2 Set

    Set 特点:1无序  2不可重复 
  HashSet:非线程安全,允许集合值为null(哈希集合)
 方法
 

 ①添加方法 void add(对象);

 ②获取列表元素个数

     int size();

③判断集合中是否没有元素 boolean isEmpty();

④判断表中是否有指定元 boolean contains(Object ob);

⑤删除列表中元素 boolean remove(Object ob);

⑥清空所有数据  void clear()

实现遍历:由于Set接口属性为无序,唯一;没有get(index);方法不能使用for循环只能有两种遍历方式

 方式1:使用foreach

 

	for (Object obj : set) {
		ArrayList1_2 hash=(ArrayList1_2)obj;
		hash.show();
	}
  方式2:使用迭代器

	Iterator it=set.iterator();
	while(it.hasNext()){//判断是否有下个值
		ArrayList1_2 Array=(ArrayList1_2)it.next();//.next获取下一个元素
		Array.show();
	}


  

3 Map (无序,不可重复) Key-Value


HashMap:使用查看成对元素

方法:


 ①添加方法 Map是按键值存在的

  Object put(Object Key,Object Value);

      ②获得方法
     Object get(Key);
   注:get方法填入键集,返回值集
    ③删除制定的键映射的“键-值对”
      Object remove(Key);
   注:根据键集删除值集,返回值集元素
   ④获取元素个数
   int size();
⑤返回键的集合
  Set KeySet();
           返回值的集合
     Collection values();
  ⑥判断指定的键映射是否存在
    boolean containsKey(Key);
    判断指定的值映射是否存在
      Boolean containsValue(value);
  

⑦清空所有数据

    void clear()

    ⑧判断是否不存在键-值映射关系
   boolean isEmpty();
实现遍历:因为Map中没有
 方法1 使用foreach
for (Object obj : map.keySet()) {//想法1:遍历map中的key值
	String ss=(String)obj;
	System.out.println(ss);
//map的键值关系没有办法输出全部元素,所以使用分步遍历
	System.out.println(map.get(obj));//利用get方法输出value,对象类型是需要强制转换

}
for (Object obj : map.values()) { //直接获取values
	String ss=(String)obj;
	System.out.println(ss);


}
方法2  使用遍历器

Set set=map.keySet();//返回值类型为Set 因为迭代器是Collection接口的方法
//hasNext()   next()是Iterator方法

Iterator it=set.iterator();

while(it.hasNext()){
Object ob=it.next();
String str=(String)ob;
System.out.println(str);
}


   
4 Iterator迭代器 只走一遍!
iterator作用:实现集合遍历
迭代器在Collection接口中
  方法:boolean hasNext();查询是否有下一个可访问的元素
   Object  next();返回要访问的下一个元素
5 泛型集合
在遍历过程中需要实行强制转换由于过于复杂 使用泛型集合
作用:把集合限定一定范围. 只能在JDK1.5以后使用
   
Map <String,BookArrayList1>map=new HashMap<String,BookArrayList1>();
//Map中键-值添加前 为String类型 后为对象类型
	map.put(p1.getName(), p1);
	map.put(p2.getName(), p2);
  //因为键 后续需要转换成String类型 在此处声明
	Set<String> name=map.keySet();
	map.get(name);
	System.out.println(map.get(name));
	System.out.println("测试结果"+map.size());

	for (String obj : name) { //此处应为Object类型  做泛型后可免强制类型转换
		System.out.println(obj);
		System.out.println(map.get(obj));
	}

Set <String>p=map.keySet();//遍历需要转换为String类型在此处声明
	Iterator <String>it=p.iterator();
  
	while(it.hasNext()){

		String str=it.next();//避免了强制转换 原:Object obj=it.next();   再 进行转换输出
		BookArrayList1 bo=map.get(str);
		bo.show();
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值