ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:562.13KB ,
资源ID:21628900      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21628900.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java笔记数组和集合文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java笔记数组和集合文档格式.docx

1、引用类型:public class Test public static void main(String args) Person p=new Person3; p0=new Person(); p1=new Person(); p2=new Person(); p0.age=20; p1.age=21; p2.age=22; for(int i=0;ip.length;i+) System.out.println(pi.age);class Person int age; 运行结果: 图示:二维数组: 定义方式: type a=new type 数组行数 数组列数 ;1)int a=new

2、 int23; /定义了一个2行3列的二维数组。2)表示的是: 3)二维数组比如 中a.length 表示的是数组行数。应用:1)冒泡排序: Array A=new Array(); int a=new int4,7,2,9; A.P(a); class Array public void P(int a)a.length-1; for(int j=0;jaj+1) int t=aj+1; aj+1=aj; aj=t; for(int k=0;ka.length;k+) System.out.println(ak); 运行结果:2)二分查找(Binary Search): 首先要求查找的数组是

3、有序的。查找等值数的位置。 public static int array(int a,int value) int low=0; int high=a.length-1; int middle; while(lowvalue) low=middle-1; if(amiddle high=middle+1; return -1; int a=2,4,5,6,7,9,14,17,21; int value=7; System.out.println(array(a,value); 运行结果: 4集合(类集-collection): 在java.util包中,1)集合中存放的依然是对象的引用而不是

4、对象本身。2)集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中。3)集合当中放置的都是Object类型,因此取出来的也是Object类型,那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型)。4)看下面图1和图2: 的实现类 a)ArrayList底层采用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上会在底层生成一个长度为10的Object类型数组。b)使用ArrayList.add()方法增加元素,如果增加的元素个数超过10个,那么ArrayList底层会新生成一个数组,长度为原数组的1.5倍+1,然后将

5、原数组的内容复制到新数组当中,并且后续增加的内容都会放到新数组当中。当新数组无法容纳增加的元素时,重复该过程。c)对于ArrayList元素的删除操作,需要将被删除元素的后续元素向前移动,代价比较高。1)ArrayList中某些方法的应用:import java.util.ArrayList; public static void main(String args) ArrayList array=new ArrayList(); array.add(cwj);/*集合下只能放置对象,此处不能放原生数据类型(如写array.add(2); 是错误的)这里要把它包装成Integer类型的对象(可

6、以去参看包装类型:有8类)*/ array.add(new Integer(2); String a=(String)array.get(0); Integer b=(Integer)array.get(1); System.out.println(a); System.out.println(b.intValue();2)ArrayList中的某些方法: array.add(new Integer(4); array.add(new Integer(7); int sum=0;array.size(); int value=(Integer)array.get(i).intValue();

7、sum +=value; System.out.println(sum); 133)ArrayList中的某些方法: array.add(new Integer(1); array.add(new Integer(3); /* * 不能将Object转换为Integer,即下面那语句不能写成:Integer in=(Integer)array.toArray(); */ Object in=array.toArray();in.length; System.out.println(Integer)ini).intValue(); 链表: Node node1=new Node(meng Nod

8、e node2=new Node(huan Node node3=new Node(xi Node node4=new Node(you node1.next=node2; node2.next=node3; node3.next=node4; node4.next=null; / 此句可有可无 System.out.println(node1.next.date);class Node String date; Node next; public Node(String date) this.date=date; huan关于ArrayList与LinkedList的比较分析:1)Array

9、List底层采用数组实现,LinkedList底层采用双向链表实现。2)当执行插入或删除操作时,采用LinkedList比较好。3)当执行搜索操作时,采用ArrayList比较好。4)当向ArrayList添加一个对象时,实际上是将该对象放置到了ArrayList底层所维护的数组当中;当向LinkedList中添加一个对象时,实际上LinkedList内部会生成一个Entry对象,该Entry对象的结构为:Entry Entry previous; Object element; Entry next; 其中的Object类型的元素element就是我们向LinkedList中所添加的元素,然

10、后Entry又构造好了向前与向后的引用previous、next,最后将生成的这个Entry对象加入到了链表当中。换句话说,LinkedList中所维护的是一个个Entry对象。应用1:用LinkedList实现队列:import java.util.LinkedList; private LinkedList link=new LinkedList(); public void put(Object o) link.addLast(o); public Object get() return link.removeFirst(); public boolean isEmpty() retur

11、n link.isEmpty(); Test t=new Test(); t.put(onetwothree System.out.println(t.get(); System.out.println(t.isEmpty(); 当使用HashSet时,hashCode()方法就会得到调用,判断已经存储在集合中的对象的hash code值是否与增加的对象的hash code值一致;如果不一致,直接加进去;如果一致,再进行equals方法的比较,equals方法如果返回true,表示对象已经加进去了,就不会再增加新的对象,否则加进去。使用原本Object中的hashCode及equals方法(这

12、里有疑问):import java.util.HashSet; HashSet set=new HashSet(); Student s1=new Student(zhangsan Student s2=new Student( set.add(s1); set.add(s2); System.out.println(set);class Student String name; public Student(String name) this.name=name;修改过hashCode及equals方法后: public int hashCode() / 重写hashCode方法 retur

13、n this.name.hashCode(); public boolean equals(Object obj) /重写equals方法 if(this=obj) return true; if(null!=obj&obj instanceof Student) Student s=(Student)obj; if(name.equals(s.name) return true; return false;HashSet下的interator()方法:,返回一个Iterator(接口)类型值。迭代和遍历意思一样,用迭代的方式获得集合,set中的每个元素。使用迭代函数:在通过迭代函数访问类集之

14、前,必须得到一个迭代函数。每一个Collection类都提供一个iterator()函数,该函数返回一个对类集头的迭代函数。通过使用这个迭代函数对象,可以访问类集中的每一个元素,一次一个元素。通常,使用迭代函数循环通过类集的内容,步骤如下:1)通过调用类集的iterator()方法获得对类集头的迭代函数。2)建立一个调用hasNext()方法的循环,只要hasNext()返回true,就进行循环迭代。3)在循环内部,通过调用next()方法来得到每一个元素。import java.util.Iterator; set.add(cwj Iterator iter=set.iterator();

15、while(iter.hasNext() String value=(String)iter.next(); System.out.println(value);/ 或用下面这段代码代替/ for(Iterator iter=set.iterator();iter.hasNext();)/ / String value=(String)iter.next();/ System.out.println(value);/ HashSet源代码深度剖析:HashSet底层是使用HashMap实现的,当使用add方法将对象添加到Set当中时,实际上是将该对象作为底层所维护的Map对象的key,而val

16、ue则都是同一个Object对象(该对象我们用不上);1)import java.util.TreeSet; TreeSet set=new TreeSet();bad for(Iterator iter=set.iterator();import java.util.Comparator;/*TreeSet(Comparatorcomparator)构造一个新的空TreeSet,它根据指定比较器进行排序,其中的Comparator是接口类型*/ TreeSet set=new TreeSet(new MyComparator();class MyComparator implements C

17、omparator public int compare(Object arg0, Object arg1) String str0=(String)arg0; String str1=(String)arg1; return pareTo(str0); / String类型下的comparaTo()方法 3) Person p1=new Person(10); Person p2=new Person(40); Person p3=new Person(30); set.add(p1); set.add(p3); set.add(p2); Person value=(Person)iter.

18、next(); System.out.println(value.score); int score; public Person(int score) this.score=score; public String toString() / 不写toString()方法也可以 return String.valueOf(this.score); Person p1=(Person)arg0; Person p2=(Person)arg1; return p1.score-p2.score;Map(映射)Map的keySet()方法会返回key的集合,因为Map的键是不能重复的,因此keySet()方法的返回类型是Set ;而Map的值是可以重复的,因此values()方法的返回类型是Collection,可以容纳重复的元素。import java.util.HashMap; HashMap map=new HashMap();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1