今天老师为我们讲了集合框架的一些内容,下面我从这几个方面进行总结。
1.什么是集合框架?
2.list,set,map三者的特点及基本使用。
①.熟悉List接口,了解何时以及如何使用ArrayList或者LinkedList来存储元素
②熟悉Set接口,了解何时及如何使用HashSet,LinkedHashSet或TreeHashSet来存储元素
③理解Collection和Map的区别,知道何时及如何使用HashMap,LinkedHashMap,TreeHashMap来存储[/color]
====================================================================================================================================================================
[color=brown]1.集合框架是什么?
了解集合框架之前,我们先得知道什么是集合,所谓集合是指把具有相同性质的一类东西,汇聚成一个整体,这样就可以称为集合。有了集合的概念,那么什么是集合框架呢?集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。
2.list,set,map三者的特点及基本使用。
① List:List接口对Collection进行了简单的扩充,它的具体实现类常用的有ArrayList和LinkedList。你可以在List容器中放入数据或者取出数据,数据的存储是有序的(根据写入的先后顺序),并且我们所写入的数据是可以出现重复情况的。ArrayList相对LinkList在随机读取速度上是有优势的,它的随机读取速度是非常之快的。而LinkList它是以链表的形式进行存储的,因此在插入和删除操作中具有很大优势。我们在对Lits进行数据查找时,根据的是数据所在的索引。 下面是一段关于ArrayList一些简单操作的代码。
import java.util.List;
import java.util.ArrayList;
import javax.swing.text.html.HTMLDocument.Iterator;
public class listdemo {
public static void main(String args[]) {
List<String> list = GreatArraylist();
List<String> list2 = GreatArraylist();
// 在指定位置添加一个元素
list.add(3, "数据100");
// 添加一个collection 中的所有元素
list.addAll(list2);
// 从列表删除所有元素
//list.clear();
// 判断列表是否包含指定元素 包含返回true
System.out.println(list.contains("数据1"));
//判断列表是否包含指定 collection中所有元素
System.out.println(list.contains(list));
//判断是否与指定对象相等 相等返回true
System.out.println(list.equals(list));
//返回列表的hash值
System.out.println(list.hashCode());
//找元素,找到返回其索引,没找到返回-1
System.out.println(list.indexOf(list2));
//迭代器
//Iterator ite=(Iterator) list.iterator();
//ite.next();
//返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。
System.out.println(list.lastIndexOf("数据100"));
//移除
System.out.println(list.remove(3));
//
printArraylist(list);
}
/**
* 创建一个Arraylist
* @return
*/
public static ArrayList<String> GreatArraylist() {
ArrayList<String> list = new ArrayList<String>();
// 给List添加数据
for (int i = 0; i < 10; i++) {
list.add("数据" + i);
}
// 返回一个Arraylist对象
return list;
}
/**
* 打印输出
* @param list
*/
public static void printArraylist(List<String> list) {
System.out.println("List的长度为:" + list.size());
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
②Set:Set和List一样,也是对Collection接口进行了扩充,它的具体实现类常用的有HashSet、LinkedHashSet、TreeSet。Set与List的不同之处在于:Set中的元素不能重复,数据存放也是无序的,并且它是按值存取的。 下面有一段示意代码,假设已经存在一个HashSet set,我们要求打印输出其内容:
public static void printSet(Set<String> set){
Iterator<String> iter = set.iterator();//得到Set集合的迭代器对象
while(iter.hasNext()){//判断Set集合中是否还有元素可以进行迭代
//得到集合中的数据
String str = iter.next();//取出迭代器中的元素对象
System.out.println(str);//输出
}
}
③Map:Map是一种把键对象和值对象进行关联的容器,而一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。对于键对象来说,像Set一样,一个Map容器中的键对象不允许重复,这是为了保持查找结果的一致性;如果有两个键对象一样,那你想得到那个键对象所对应的值对象时就有问题了,可能你得到的并不是你想的那个值对象,结果会造成混乱,所以键的唯一性很重要,也是符合集合的性质的。当然在使用过程中,某个键所对应的值对象可能会发生变化,这时会按照最后一次修改的值对象与键对应。对于值对象则没有唯一性的要求。你可以将任意多个键都映射到一个值对象上,这不会发生任何问题(不过对你的使用却可能会造成不便,你不知道你得到的到底是那一个键所对应的值对象)。 如下是一段简单的HashMap操作的代码,我们对其赋值再将其打印出来。
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import cn.netjava.lesson03.Student;
public class MapDemo {
/**
* @param args
*/
public static void main(String[] args) {
Map<String,Student> map = MapDemo.createMap();
MapDemo.printMap(map);
System.out.println("==========================");
map.put("ID100", new Student("张三",5));
map.put("ID100", new Student("李四",10));
map.remove("ID1");
MapDemo.printMap(map);
}
/**
* 创建一个一个Map集合框架的对象
*/
public static Map<String,Student> createMap(){
Map<String,Student> map = new HashMap<String,Student>();//实例化一个集合对象
//循环给List集合中添加数据
for(int i=0;i<10;i++){
map.put("ID"+i,new Student("姓名"+i,i));
}
return map;
}
public static void printMap(Map<String,Student> map){
//获取到key的Set集合对象
Set<String> set = map.keySet();
Iterator<String> iter = set.iterator();//得到Set集合的迭代器对象
while(iter.hasNext()){//判断Set集合中是否还有元素可以进行迭代
//得到集合中的数据
String key = iter.next();//取出迭代器中的元素对象
Student stu = map.get(key);//根据Key来获取Map的Value
System.out.println("Key="+key+" Value="+stu.toString());//输出
}
}
}
分享到:
相关推荐
泛型是Java集合框架中的一个重要特性,它允许在编译时指定集合元素的具体类型,从而避免了运行时的类型转换错误。使用泛型的集合可以更安全地操作对象,同时提高了代码的可读性和可维护性。 #### 集合类的实例 - *...
Java是一种广泛使用的编程语言,以其跨...这些只是Java学习的基础,实际开发中还包括更多高级概念,如集合框架、多线程、网络编程、IO流、反射等。掌握好这些基础,再逐步深入,将能更好地驾驭Java这一强大的编程工具。
总结起来,这个课程将涵盖Java语言的基本语法、面向对象编程概念、异常处理、集合框架、I/O流、多线程以及如何使用Java的标准库。通过学习和实践提供的50多个代码示例,学生可以逐步掌握Java编程技能,并能够编写出...
3. **数组与集合**:数组用于存储固定数量的同类型元素,而集合框架(如ArrayList、LinkedList、HashSet、HashMap等)则提供了动态存储和操作对象的能力。 4. **异常处理**:Java通过try-catch-finally结构进行异常...
此外,Java还支持集合框架,如`ArrayList`、`HashMap`等,用于高效地存储和操作数据。 在编程实践中,我们还会遇到设计模式,如单例模式、工厂模式、观察者模式等,它们是解决常见问题的最佳实践,可以提高代码的...
#### Java集合框架 - **集合框架介绍**:了解集合框架的整体结构。 - **List、Set、Map详解**:掌握各种集合的具体用法,如ArrayList、LinkedList、HashSet、HashMap等。 - **迭代器与增强for循环**:学习如何遍历...
5. **Java SE Lesson 5.pdf** - 这部分可能讲解了集合框架,包括ArrayList、LinkedList、HashMap等数据结构。还会介绍如何操作这些集合,以及如何根据需求选择合适的数据结构。此外,可能会涉及泛型,这是在Java中...
Java集合框架包括List、Set、Map等接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。理解这些数据结构和它们的应用场景是Java编程的基础。 4. **JAVA2-10.pdf** - 可能讨论了输入输出流(I/O流)。...
Java 面试题 Java 是一门面向对象的编程语言,广泛应用于 Android 应用开发、Web ...本资源摘要信息总结了 Java 面试题的主要内容,涵盖了 Java 基础、Java 集合框架、Java 并发、Java Web 和数据库等方面的知识点。
这通常包括了Java语言的常见面试问题,可能涵盖类与对象、封装、继承、多态、异常处理、内存管理(如垃圾回收)、集合框架、线程、IO流、网络编程、反射等。了解这些问题可以帮助开发者在面试中展现出扎实的基础。 ...
- **课上内容**:包括Java核心概念,如面向对象编程、异常处理、输入输出流、集合框架等。 - **上机作业**:重点是编程实践,如编写复数类、坐标点类,实现文件拷贝,设计GUI时钟程序等。 3. **课程设计**: - *...
Java集合框架提供了丰富的数据结构,如ArrayList、LinkedList、HashSet、HashMap等。理解它们的工作原理和适用场景能帮助我们选择最佳的数据结构以优化程序性能。 综上所述,Java编程语言基础知识涵盖了广泛的编程...
集合框架 - Collection与Map接口:Collection和Map接口的功能及实现类。 - List、Set、Queue的使用:List、Set、Queue接口及其常用实现类的特点。 - HashMap与TreeMap:HashMap和TreeMap的使用场景及区别。 #### ...
这份文档可能是广工学生整理的学习资料,涵盖了Java的关键知识点,包括基本语法、面向对象编程、集合框架、异常处理、输入输出流、多线程、网络编程等。学习笔记中的经典案例和问题解答可以帮助初学者巩固理论知识,...
2. **集合框架**:Java集合框架如ArrayList、LinkedList、HashMap等用于存储和管理大量学生信息,提供高效的数据操作。 3. **Swing或JavaFX**:作为用户界面开发库,用于创建图形化用户界面(GUI),如添加、删除、...
集合框架 - **集合类**: ArrayList、LinkedList、HashSet等。 - **Map接口**: HashMap、TreeMap等。 - **迭代器**: 用于遍历集合中的元素。 ##### 7. I/O流 - **输入流**: 如FileInputStream、BufferedReader等...
Java集合框架是一组接口和类,提供了数据存储和操作的高效工具。例如ArrayList、LinkedList、HashMap等,源码会解释它们的使用场景和操作方法,帮助理解如何有效地管理和操作数据集。 六、异常处理 异常处理是Java...
9. 集合框架:熟悉ArrayList、LinkedList、HashSet、HashMap等数据结构的使用。 10. 文件和IO流:学习如何读写文件,以及输入/输出流的基本操作。 11. 多线程:理解线程的概念,掌握Thread类和Runnable接口,以及...
4. **集合框架**:Java集合框架是处理数据集合的重要工具,包括List、Set、Map等接口以及ArrayList、LinkedList、HashSet、HashMap等实现类。这部分可能会讲解如何有效地使用它们。 5. **文件I/O**:“l8_wav.ppt”...