集合泛型程序设计实验报告,集合泛型程序设计实验分析

  集合泛型程序设计实验报告,集合泛型程序设计实验分析

  集合的概念:对象的容器,实现对对象的通用操作。

  与数组的差异:

  数组的长度是固定的,但集合的长度是不固定的。数组可以存储基本类型和引用类型,集合只能存储引用类型。

  集合:特征:表示一组任意对象,无序,无下标,不可重复。

  创建集合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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: