集合泛型程序设计实验报告,集合泛型程序设计实验分析
集合的概念:对象的容器,实现对对象的通用操作。
与数组的差异:
数组的长度是固定的,但集合的长度是不固定的。数组可以存储基本类型和引用类型,集合只能存储引用类型。
集合:特征:表示一组任意对象,无序,无下标,不可重复。
创建集合Collection=new ArrayList();
常用方法:
添加元素collection . add();删除元素
collection.remove()。collection.clear()。遍历元素使用增强的for(因为没有下标)
For(Object object: collection){}使用迭代器it=collection . Iterator();
while(it.hasNext()){
String对象=(String)it . next();
}判断
集合. contains();确定字符串是否包含指定的字符或字符串集合。isempty();是否为空列表特性:有序、下标和可重复元素。
创建集合对象列表List=new ArrayList();
常用方法:
添加元素list . add();将自动装箱和删除基本类型的元素可以使用该索引list.remove(0)。
当被删除的数字与索引相矛盾时,该数字被强制旋转。
list.remove((Object) 10)或list.remove(new Integer(10))遍历使用for来遍历for(int I=0;I Lise . size();i ){
sout(list . get(I));
}使用增强功能
For(对象列表:集合){}使用迭代器it=collection . Iterator();
while(it.hasNext()){
String对象=(String)it . next();//strong势转身
//可以用它. remove();移除元素。
//collection . remove();您不能通过其它收集方法报告并发修改例外。
}使用列表迭代器(注意和迭代器的区别)list iterator Li=list . list iterator();
while(li.hasNext()){
system . out . println(Li . nextindex(): Li . next());//从前到后遍历
}
while(li.hasPrevious()){
system . out . println(Li . previous index(): Li . previous());//从后向前遍历
}获取list . index of();实现列表类ArrayList
数组结构的实现必须有连续的空间,快速的查询和慢速的增删。
JDK版本1.2,运行效率块,不安全线程
合框架
双向链表结构,无连续空格,增删快,查询慢。
ArrayList创建集合ArrayList ArrayList=new ArrayList();
添加元素ArrayList . add();删除元素ArrayList . remove(new student( name ,10));判断
ArrayList . contains();和ArrayList . isempty();
寻找
ArrayList . index of();
LinkedList创建一个链表集linked list Li=new linked list();
常用方法与列表一致。
泛型的本质是参数化类型。将类型作为参数传递的常见形式是泛型类、泛型接口和泛型方法语法T,它成为类型占位符,指示引用类型。您可以写多个逗号来分隔优势。1.提高代码的可重用性。2.防止类型转换异常并提高代码安全性。泛型类//编写一个泛型类。
公共类MyGeneric T {
//使用泛型t
//1创建一个变量
T t
//2泛型作为方法的参数
公共空显示(T t){
sout;
}
//3泛型作为方法的返回值
public T getT(){
return t;
}
}//使用泛型类
公共类TestGeneric{
公共静态void main(String[] args){
//使用泛型类创建对象
//注:1。泛型只能使用引用类型。
//
my generic String my generic=new my generic String
myGeneric.t= hello
myGeneric.show(hello world!);
string string=my generic . gett();
MyGeneric整数myGeneric2=新的myGeneric整数
myGeneric2.t=100
mygeneric 2 . show(200);
integer integer=mygeneric 2 . gett();
}
}集合特性:无序、无下标、不可重复的元素。
方法:它们都继承自集合中的方法
增、删、遍历、判断与收藏一致。
HashSet存储结构:哈希表(数组链表的红黑树)
存储过程(由重复)
根据hashCode,计算保存的位置。如果位置为空,直接保存。如果没有,转到第二步,然后执行equals方法。如果equals为true,则认为它是重复的。否则,形成新的集合hashset string hashset=new hashset string。
添加元素hashset . add();
删除元素hashset . remove();
遍历操作
1.增强for for(类型type: hashSet)
2.迭代器string it=hashset . iterator();
judge hashset . contains();hashset . isempty();
树集特征
基于排列顺序,实现SortedSet接口,实现元素的不重复。对于集合中元素的自动排序,必须实现Comparable接口,并指定排序规则。CompareTo方法用于判断是否为重复元素存储结构:红黑树。
创建集合树集字符串treeset=newtreeset()
添加treeSet.add()元素;
删除treeSet.remove()元素;
1.遍历,增强了2。迭代程序
judge treeset . contains();
补充:使用树集集合
比较器实现自定义比较(比较器)
可比的
地图界面的特征
用于存储任意键-值对(key-value):无序、无下标、不允许重复(unique)值:无序、无下标、允许重复HashMap存储结构:哈希表(数组链表的红黑树)
使用key使hashcode和equals重复。
增、删、遍历、判断与上面一致。
当HashMap第一次被创建时,table为空,以节省空间。当添加第一个元素时,表的容量被调整为16。当元素个数大于阈值(16*0.75=12)时,会进行扩展,扩展后的大小是原来的两倍。目的是减少调节元件的数量。jdk1.8当每个链表的长度为8,数组元素个数64时,会调整为红黑树。目的是为了提高jdk1.8的效率,在jdk1.8之前,链表长度为6时,插入链表头部,然后为尾部插入哈希表。线程安全,运行效率慢;不允许Null作为键或值。
Propertieshashtable的子类,它要求键和值都是字符串,通常用于读取配置文件。
TreeMap实现了SortedMap接口(Map的子接口),可以自动对键进行排序。
版权归作者所有:原创作品来自博主Czfhhh,转载授权请联系作者,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。