java集合体系
『壹』 java集合框架中,包括哪些接口和类
Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。内Java集合类里面容最基本的接口有:
1、Collection:代表一组对象,每一个对象都是它的子元素。
2、Set:不包含重复元素的Collection。
3、List:有顺序的collection,并且可以包含重复元素。
4、Map:可以把键(key)映射到值(value)的对象,键不能重复。
『贰』 什么是java中的集合框架
集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。
接口:即表示集合的抽象数据类型。接口提供了让我们对集合中所表示的内容进行单独操作的可能。
实现:也就是集合框架中接口的具体实现。实际它们就是那些可复用的数据结构。
算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、排序等。这些算法通常是多态的,因为相同的方法可以在同一个接口被多个类实现时有不同的表现。事实上,算法是可复用的函数。如果你学过C++,那C++中的标准模版库(STL)你应该不陌生,它是众所周知的集合框架的绝好例子。
『叁』 java集合类框架中类的组织结构,并说明它们之间的联系与区别。
结构图一楼给出来了,
联系:list是可重复的有顺序的;set是不重复的无序的;map中的key是不重复的,value是和key一一对应的。
区别:
1. ArrayList是用动态数组实现的,有数组随机访问的优点,但插入和删除操作过多时效率低;LinkedList是用双向链表实现的,插入和删除操作效率高,但随机访问数据不如ArrayList速度快。
2. HashSet是用散列实现的,TreeSet是用红黑树(基于二叉平衡树的变种)实现的,
TreeSet是有序的(这可能与数学中纯粹的集合概念不一致,但似乎这世上本就没有纯粹的东西吧),所以放入TreeSet中的对象必须是可比较的,即实现Compareble接口。
3. HashMap和TreeMap,与HashSet、TreeSet类似。
『肆』 JAVA集合框架的类
java.util里面复有一个Arrays类,它包括了一组制可用于数组的static方法,这些方法都是一些实用工具。其中有四个基本方法:用来比较两个数组是否相等的equals();用来填充的fill();用来对数组进行排序的sort();以及用于在一个已排序的数组中查找元素的binarySearch()。所有这些方法都对primitive和Object进行了重载。此外还有一个asList()方法,它接受一个数组,然后把它转成一个List容器。
虽然Arrays还是有用的,但它的功能并不完整。举例来说,如果它能让我们不用写for循环就能直接打印数组,那就好了。此外,正如你所看到的fill()只能用一个值填数组。所以,如果你想把随机生成的数字填进数组的话,fill()是无能为力的。
『伍』 JAVA集合框架的总结
1.数组把对象和数字形式的下标联系起来。它持有的是类型确定的对象,这样提取对象的时候就不用再作类型传递了。它可以是多维的,也可以持有primitive。但是创建之后它的容量不能改了。
2.Collection持有单个元素,而Map持有相关联的pair。
3.和数组一样,List也把数字下标同对象联系起来,你可以把数组和List想成有序的容器。List会随元素的增加自动调整容量。但是List只能持有Objectreference,所以不能存放primitive,而且把Object提取出来之后,还要做类型传递。
4.如果要做很多随机访问,那么请用ArrayList,但是如果要再List的中间做很多插入和删除的话,就应该用LinkedList了。
5.LinkedList能提供队列,双向队列和栈的功能。
6.Map提供的不是对象与数组的关联,而是对象和对象的关联。
HashMap看重的是访问速度,而TreeMap看重键的顺序,因而它不如HashMap那么快。而LinkedHashMap则保持对象插入的顺序,但是也可以用LRU算法为它重新排序。
7.Set只接受不重复的对象。HashSet提供了最快的查询速度。而TreeSet则保持元素有序。LinkedHashSet保持元素的插入顺序。
8.没必要再在新代码里使用旧类库留下来的Vector,Hashtable和Stack了。
容器类库是你每天都会用到的工具,它能使程序更简洁,更强大并且更高效。
随着Java的进一步完善,它的功能和易用性也得到提高,我有理由相信Java在计算机语言中所占的位置也会更加牢固,让喜爱Java的人更加喜爱它。祝愿Java一路顺风!
『陆』 java集合框架是什么
Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。
『柒』 java集合框架
importjava.util.ArrayList;
importjava.util.Iterator;
importjava.util.Scanner;
classStudent{
privateintnumber;
privateStringname;
privateintage;
privateStringsex;
publicStudent(){
=0;
name=null;
age=0;
sex=null;
}
publicStudent(intnumber,Stringname,intage,Stringsex){
this.number=number;
this.name=name;
this.age=age;
this.sex=sex;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetNumber(){
returnnumber;
}
publicvoidsetNumber(intnumber){
this.number=number;
}
}
publicclassTest5{
publicstaticvoidmain(String[]args){
ArrayList<Student>list=newArrayList<Student>();
Student[]stu=newStudent[]{newStudent(1,"Tom",15,"男"),
newStudent(2,"Lucy",15,"女"),newStudent(3,"Lily",14,"女"),
newStudent(4,"Jack",16,"男"),newStudent(5,"Kim",15,"男")};
for(inti=0;i<stu.length;i++){
list.add(stu[i]);
}
System.out.println("请输入要查找的学生编号:");
Scannersca1=newScanner(System.in);
intsca1_=sca1.nextInt();
for(Studentstudent:stu){
if(student.getNumber()==sca1_){
System.out.println(student.getName());
break;
}
elseif(list.get(list.size()-1)==student){
System.out.println("没有该编号学员");
}
}
System.out.println("请输入要删除的学生编号:");
sca1_=sca1.nextInt();
intindex_;
for(Studentstudent:stu){
if(student.getNumber()==sca1_){
list.remove(list.indexOf(student));
System.out.println("删除成功");
break;
}
elseif(list.get(list.size()-1)==student){
System.out.println("没有该编号学员");
}
}
}
}
修订后的完全版哦,给好评哦亲
『捌』 JAVA的集合框架中有那些类,他们都有那些区别
区别详解,没法详解,数据结构就够研究几个月的,不过要是把目标放在会用上,就容易多了,也无需了解底层,看看API文档,知道什么方法是干什么的会用就行了。
集合类巨多无比,其实常用的也就这么几个,其他的都不用太看,你就看看:ArrayList、LinkedList、HashMap、TreeMap、HashSet 就行了,我理解也有限,简单说一下这几个:
Collection下面有List和Set,List有ArrayList、LinkedList,ArrayList底层以Object类型数组实现,特点是查找很快,增加或删除操作很慢,这是由于数组的特点决定的,查找的时候因为有下标,所以你查第一个和查第1000个速度是一样的,直接就定位过去了,但是删除或者增加内容时,假如说一个ArrayList里面有1000个元素,现在把第一个元素删掉,那就出问题了,从第2个一直到第1000个元素都要
往前移动一个位置,这种移动是非常耗时而且效率是极其低下的。
LinkedList底层是以双向循环链表实现的,特点是查找很慢,但是增加和删除操作很快,双向循环链表里面所有元素都是一个一个连在一起的,查找第1000个,就要从第1个开始找到第2个,然后第3个....
但是删除的时候,直接吧元素就删了,前后的两个元素之间在连起来,ok 了。
TreeMap,特点是按照key的升序保存键值对,因此插入的时候效率理论上稍慢写。
HashMap、HashSet,HashSet底层以HashMap实现,HashMap底层以数组实现,当向集合HashSet中使用add方法增加元素的时候,其实会向HashMap中增加一行(key-value),这个key就是增加到Set中的对象,value是一个Object对象,首先调用key的hashCode方法返回一个HashCode值,注意这并不是真正的物理地址,通过将这个值进行散列运算,得到一个int型的数,然后利用此数和数组的长度计算出一个数组的下标值,看看这个位置上有没有一个对象,如果没有直接增加进去一个Entry对象,如果有,那么接着将准备增加到集合中的key与该位置上的对象的key进行equals方法比较,如果该equals方法返回true,说明两个key的内容相同,会用新的value将旧的value替换掉,put方法会返回这个被替换掉的value,如果equals方法返回false,会调用当前位置上存在的那个Entry对象的next属性,寻找下一个Entry对象根这个Entry对象的key再进行equals比较.....
Vector和HashTable两个已经过时了,内部public方法都是同步的,所以效率极其低下,淘汰了,不过面试老考,郁闷。
『玖』 JAVA集合框架的介绍
Java,是由Sun公司于1995年推出的编程语言。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨专平台、动态的属Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。
『拾』 java 集合体系结构以及集合和数组的区别
集合体系结构 包含后两者:集合和数组,数组是集合的一例