java里面集合框架是比较重要的基础知识,虽然不是很难,但经常使用,特别是ArrayList、HashMap经常用到。java集合框架大致分为三个部分,分别是List、Set、Map,这三个都是接口,其具体实现有多个类,但常用的分别是ArrayList、HashSet、HashMap,下面分别总结一下这三者的基本使用方法。
(1)ArrayList使用较广,其功能相当于一个数组队列,存取速度快,具体使用,请看下面的代码:
写道
package com.gzy0930_L2集合类;
import java.util.ArrayList;
//集合类的使用
public class L2_1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Student> al=new ArrayList<>();
Student stu1=new Student();
Student stu2=new Student();
Student stu3=new Student();
stu1.setSno(01);
stu1.setAge(10);
stu1.setSname("孙悟空");
stu2.setSno(02);
stu2.setAge(20);
stu2.setSname("猪八戒");
stu3.setSno(03);
stu3.setAge(30);
stu3.setSname("沙悟净");
//增加对象
al.add(stu1);
al.add(stu2);
al.add(stu3);
//遍历
for(int i=0;i<al.size();i++){
Student stu=al.get(i);
System.out.println("第"+(i+1)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge());
}
//删除第一个对象
al.remove(0);
for(int i=0;i<al.size();i++){
Student stu=al.get(i);
System.out.println("第"+(i+1)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge());
}
Student stu4=new Student();
stu4.setSno(04);
stu4.setAge(40);
stu4.setSname("唐僧");
//在指定位置添加对象
al.add(0, stu4);
for(int i=0;i<al.size();i++){
Student stu=al.get(i);
System.out.println("第"+(i+1)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge());
}
}
}
import java.util.ArrayList;
//集合类的使用
public class L2_1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Student> al=new ArrayList<>();
Student stu1=new Student();
Student stu2=new Student();
Student stu3=new Student();
stu1.setSno(01);
stu1.setAge(10);
stu1.setSname("孙悟空");
stu2.setSno(02);
stu2.setAge(20);
stu2.setSname("猪八戒");
stu3.setSno(03);
stu3.setAge(30);
stu3.setSname("沙悟净");
//增加对象
al.add(stu1);
al.add(stu2);
al.add(stu3);
//遍历
for(int i=0;i<al.size();i++){
Student stu=al.get(i);
System.out.println("第"+(i+1)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge());
}
//删除第一个对象
al.remove(0);
for(int i=0;i<al.size();i++){
Student stu=al.get(i);
System.out.println("第"+(i+1)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge());
}
Student stu4=new Student();
stu4.setSno(04);
stu4.setAge(40);
stu4.setSname("唐僧");
//在指定位置添加对象
al.add(0, stu4);
for(int i=0;i<al.size();i++){
Student stu=al.get(i);
System.out.println("第"+(i+1)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge());
}
}
}
(2)为优化查询速度而设计的Set。要放进HashSet里面的Object还得定义hashCode()。一定要记住,Set要有一个判断以什么顺序来存储元素的标准,也就是说你必须实现Comparable接口,并且定义compareTo()方法。 要使用的学生类代码如下:
package com.gzy0930_L2集合类; public class Student { private int sno; private String sname; private int age; public void setSno(int sno){ this.sno=sno; } public void setSname(String sname){ this.sname=sname; } public void setAge(int age){ this.age=age; } public int getSno(){ return sno; } public String getSname(){ return sname; } public int getAge(){ return age; } }
(3)Map是一种键对象和和值对象相关联的一种容器,HashMap是Map的一种实现,里面有key和value一一映射,key值唯一,如果后面重复前面的键值,就会将前面的数据覆盖,不会出现两个相同的key。HashMap相当于数组与链表的结合,存取速度快而且便于删除添加,HashMap使用通过key找到相应的value,遍历需要用到迭代器Iterator。代码如下:
package com.gzy0930_L2集合类; import java.util.HashMap; import java.util.Iterator; //hashmap中有个键值唯一标识每一个元素,使存入其中的对象不会有重复 //可避免重复 //hashmap先进先出 public class L2_5 { public static void main(String[] args) { HashMap<String,Student> hm=new HashMap<>(); Student stu1=new Student(); Student stu2=new Student(); Student stu3=new Student(); stu1.setSno(01); stu1.setAge(10); stu1.setSname("孙悟空"); stu2.setSno(02); stu2.setAge(20); stu2.setSname("猪八戒"); stu3.setSno(03); stu3.setAge(30); stu3.setSname("沙悟净"); //添加方式有所不同 /** * 如果后面的键值和前面相同,就会覆盖其前面的对象, * hashmap中不可能出现两个相同的键值 */ hm.put("001", stu1); hm.put("002", stu2); hm.put("003", stu3); //遍历 Iterator<String> it=new Iterator<String>() { public boolean hasNext() { return false; } public String next() { return null; } public void remove() { } }; it=hm.keySet().iterator(); int i=0; while(it.hasNext()){ i++; String key=it.next().toString(); Student stu=hm.get(key); System.out.println("第"+(i)+"个学生的姓名为:"+stu.getSname()+"\n学号为:"+stu.getSno()+"\n年龄为:"+stu.getAge()); } } }
相关推荐
Java集合框架使用总结 前言: 本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看Java API文档。 一、概述 数据结构对程序设计...
java集合 框架 泛型,枚举,有PPT详解,并有实例
【完整课程列表】 完整版 Java初级教程 Java语言程序设计 第1章 Java语言简介(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第2章 基本...完整版 Java初级教程 Java语言程序设计 第8章 集合框架(共19页).ppt
Java里面最重要,最常用也就是集会一部分了。能够用好集合和理解好集合对于做Java程序的开发拥有无比的好处。本文详细解释了关于Java中的集合是如何实现的,以及他们的实现原理。
学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在Java集合框架中提供的一些实现。 本书内容非常丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力...
完整版 Java基础入门教程 Java程序语言设计 03 java对象 集合框架(共18页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 java对象 类和对象1(共23页).ppt 完整版 Java基础入门教程 Java程序语言设计 03 ...
Java集合框架.ppt,大家来看看,有好处的,希望给你们带来收获,简单,通俗易懂
Java集合框架是Java程序员必备的核心知识之一。在面试中,对Java集合框架的深入理解将成为展现你的编程能力和解决问题的能力的重要因素。本篇面试题集锦旨在帮助你更深入地了解Java集合框架的复杂概念和应用,以及...
Java集合框架是Java编程中的一个非常重要的部分,提供了一组用于处理数据集合的接口和类。其中Collection接口是Java集合框架的基础接口之一,定义了一些基本的集合操作,包括添加元素、删除元素、遍历集合等。在这里...
java中的集合框架包括java集合框架的相关文档、例子,程序代码资源,是复习的好资源
学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在java集合框架中提供的一些实现。. 本书内容丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力。...
掌握Java集合框架中的三大类集合的特征和适用场合 掌握ArrayList类的使用 掌握HashMap类的使用 了解HashSet类的使用 掌握Collections类的使用 了解集合框架中的其它集合类 集合框架(Collection Framework) java.util...
02 Java编程基础(共61页).ppt 03 自定义方法(共14页).ppt 04 面象对象编程初步-类和对象(共54页).ppt 05 面向对象编程-封装(共21页).ppt 06 面向对象编程-继承和多态(共28页).ppt 07 面向对象编程-接口和...
基于JAVA集合框架及实用类实现的超市会员管理系统,包含:开卡、积分累计、积分兑换、查询剩余积分、修改密码等功能。
02 Java编程基础(4学时)(共55页) 03 数组(2学时)(共22页) 04 类和对象(2学时)(共31页) 05 继承和多态(2学时)(共40页) 06 类的高级特征(4学时)(共55页) 07 异常(2学时)(共27页) 08 线程(2学时)(共15页)...
Java学习资料 Java 编程语言的基础知识,Java 的语法、面向对象编程、集合框架、IO 操作等内容,并提供大量的案例代码和实践练习
Java基础入门教程 Java编程技术10 集合框架(略)(共48页).ppt Java基础入门教程 Java编程技术11 Java IO(2学时)(共30页).ppt Java基础入门教程 Java编程技术12 网络编程(2学时)(共20页).ppt Java基础入门教程 ...
【完整课程列表】 完整版 Java初级教程 Java语言程序设计 第1章 Java语言简介(共16页).ppt 完整版 Java初级教程 Java语言程序设计 第2章 基本...完整版 Java初级教程 Java语言程序设计 第8章 集合框架(共19页).ppt
集合框架练习.doc
这份资源旨在为您提供关于 Java 集合框架的详细讲解,涵盖了集合的类型、特性、应用场景以及使用方法。通过深入学习,您将建立坚实的集合框架知识,能够更好地选择和应用适合的集合来满足不同的编程需求。 集合框架...