1 public classStudent

2{

3 //成员变量

4 private String name;

5 private int age;

6

7 //构造方法

8 publicStudent()

9{

10 super();

11 }

12

13 publicStudent(String name, intage)

14{

15 super();

16 this.name = name;

17 this.age = age;

18 }

19

20 //成员方法

21 //getXxx()/setXxx()

22 publicString getName()

23{

24 return name;

25 }

26

27 publicvoidsetName(String name)

28{

29 this.name = name;

30 }

31

32 publicintgetAge()

33{

34 return age;

35 }

36

37 public void setAge(int age)

38 {

39 this.age = age;

40 }

41

42 @Override

43 public String toString()

44 {

45 return "Student [name=" + name + ", age=" + age + "]";

46 }

47 }

1 /**2把5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息。

3* 学生:Student

4* 成员变量:name,age

5* 构造方法:无参,带参

6* 成员方法:getXxx()/setXxx()

7* 分析:

8* A:创建学生类。

9* B:创建学生数组(对象数组)。

10* C:创建5个学生对象,并赋值。

11* D:把C步骤的元素,放到数组中。

12* E:遍历学生数组。

13* */

14

15 public classPractice

16{

17 public static void main(String[] args)

18 {

19 //创建学生数组(对象数组)。

20 Student[] students = new Student[5];

21 //for (int x = 0; x < students.length; x++)

22 //{

23 //System.out.println(students[x]);

24 //}

25 //System.out.println("---------------------");

26

27 //创建5个学生对象,并赋值。

28 Student s1 = new Student("小明", 27);

29 Student s2 = new Student("小红", 30);

30 Student s3 = new Student("小强", 30);

31 Student s4 = new Student("旺财", 12);

32 Student s5 = new Student("张三", 35);

33

34 // 将对象放到数组中。

35 students[0] = s1;

36 students[1] = s2;

37 students[2] = s3;

38 students[3] = s4;

39 students[4] = s5;

40

41 // 遍历

42 for (int x = 0; x < students.length; x++)

43 {

44 //System.out.println(students[x]);

45 Student s = students[x];

46 System.out.println(s.getName()+"---"+s.getAge());

47 }

48 }

49 }

15.02 对象数组的内存图解

15.03 集合的由来及与数组的区别

集合类的由来:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。

数组和集合类同的区别:

数组可以存储同一种类型的基本数据也可以存储同一种类型的对象,但长度是固定的

集合只可以存储不同类型的对象,长度是可变的

集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

15.04 集合的继承体系图解

集合容器因为内部的数据结构不同,有多种具体容器,根据共性内容不断的向上抽取,就形成了集合框架。

框架的顶层Collection接口

15.05 Collection集合的功能概述

Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。

15.06 Collection集合的基本功能测试

成员方法:

1.  boolean add(Ee):确保此 collection 包含指定的元素(可选操作)。

2.  boolean remove(Objecto):从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。

3.  void clear():移除此 collection 中的所有元素(可选操作)。

4.  boolean contains(Objecto):如果此 collection 包含指定的元素,则返回 true。

5.  boolean isEmpty():如果此 collection 不包含元素,则返回 true。

6.  int size():返回此 collection 中的元素数。

例:

1 //创建集合对象

2 //Collection c = new Collection(); //错误,因为接口不能实例化

3 Collection c = new ArrayList();

4 c.add("hello");

5 c.add("world");

6 c.add("java");

7 //c.clear();//移除所有元素

8 //System.out.println("remove:" + c.remove("hello"));//移除一个元素

9 //System.out.println("remove:" + c.remove("javaee"));

10 //判断集合中是否包含指定的元素

11 System.out.println("contains:"+c.contains("hello"));//contains:true

12 System.out.println("contains:"+c.contains("android"));//contains:false

13 //判断集合是否为空

14 System.out.println("isEmpty:"+c.isEmpty());//isEmpty:false

15 //元素的个数

16 System.out.println("size:"+c.size());//size:3

17 System.out.println("c:" + c);//c:[hello, world, java]

15.07 Collection集合的高级功能测试

成员方法:

1.  boolean addAll(Collection extends E> c):

将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。

2.  boolean removeAll(Collection> c):

移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。

3.  boolean containsAll(Collection> c):

如果此 collection 包含指定 collection 中的所有元素,则返回 true。

4.  boolean retainAll(Collection> c):

仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。换句话说,移除此 collection 中未包含在指定 collection 中的所有元素。

例:

c1.addAll(c2);//将c2集合中的所有元素添加到c1集合中,c1变c2不变

c1.removeAll(c2);//将c1集合中与c2集合相同的所有元素删除,只要有一个相同的就返回true

c1.containsAll(c2);//判断c1集合中的元素是否包含c2中的全部元素,全部包含则返回true

c1.retainAll(c2);//将c1集合中与c2集合相同的元素保留,删除其他元素,返回值表示c1集合是否发生变化,发生变化返回true,没有变化返回false

15.08 集合的遍历之集合转数组遍历

Object[] toArray():返回包含此 collection 中所有元素的数组。

例:

1 public classPractice

2{

3 public static void main(String[] args)

4 {

5 //创建集合

6 Collection c = new ArrayList();

7 c.add("hello");

8 c.add("world");

9 c.add("java");

10

11 Object[] objs = c.toArray();

12 for (int i = 0; i < objs.length; i++)

13 {

14 //向下转为String类型

15 String s = (String)objs[i];

16 System.out.println(s+":"+s.length());

17 }

18 }

19 }

运行结果:

hello:5

world:5

java:4

java对象返回数组对象_Java 对象数组相关推荐

  1. java 对象数组定义_Java对象数组定义与用法详解

    本文实例讲述了Java对象数组定义与用法.分享给大家供大家参考,具体如下: 所谓的对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据 ...

  2. android object数组赋值_Java对象数组定义与用法详解

    本文实例讲述了Java对象数组定义与用法.分享给大家供大家参考,具体如下: 所谓的对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据 ...

  3. java 对象池 博客_Java对象池技术的原理及其实现的小结

    一起学习 Java对象的生命周期大致包括三个阶段:对象的创建,对象的使用,对象的清除.因此,对象的生命周期长度可用如下的表达式表示:T = T1 T2 T3.其中T1表示对象的创建时间,T2表示对象的 ...

  4. java对象什么时候回收_Java对象的生命周期与垃圾回收以及四种引用

    创建对象的方式用new语句创建对象. 使用反射,调用java.lang.Class或java.lang.reflect.Constructor的newInstance()实例方法. 调用对象的clon ...

  5. java的头怎么写_JAVA对象布局之对象头(Object Header)

    由于Java面向对象的思想,在JVM中需要大量存储对象,存储时为了实现一些额外的功能,需要在对象中添加一些标记字段用于增强对象功能 .在学习并发编程知识synchronized时,我们总是难以理解其实 ...

  6. java对象克隆的例子_Java对象克隆

    本篇文章帮大家学习java对象克隆,包含了Java对象克隆使用方法.操作技巧.实例演示和注意事项,有一定的学习价值,大家可以用来参考. Java不提供克隆(复制)对象的自动机制.克隆对象意味着逐位复制 ...

  7. java对象的内存结构_Java对象在内存中的结构分析

    问题:在Hotspot JVM中,32位机器下,Integer对象的大小是int的几倍? HotSpot虚拟机中,对象在内存中的布局分为三块区域:对象头.实例数据和对齐填充,其中对象头又分为:Mark ...

  8. java对象的初始化顺序_Java对象初始化顺序

    初始化顺序: 1.有无父类? 有: 将父类加载进内存.直到将所有的父类加载完毕.再从顶层父类按照代码的顺序执行静态代码,执行完最顶层的,在执行下一层的,依次类推,直到执行完所有的静态代码. (1)如果 ...

  9. java对象的内存结构_JAVA 对象内存结构

    JAVA对象内存结构 HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header).实例数据(Instance Data)和对齐填充(Padding). 对象头 markWo ...

  10. java中存在对多个对象加锁的情况_Java对象锁和类锁全面解析(多线程synchronized关键字)...

    最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚锁的概念.最近也是遇到一些问题,不搞清楚锁的概念,很容易碰壁,甚至有些时候自己连用没 ...

最新文章

  1. windows下:ERROR 1366 (HY000): Incorrect string value: ‘\xC1\xF5\xB1\xB8‘ for column ‘name‘ at row 1
  2. 我的移动混合开发之旅
  3. 图像处理【代码合集】
  4. Quick cocos2dx学习笔记
  5. 43.mysqladmin
  6. 每天一点正则表达式积累(五)
  7. 浅谈计算机网络技术应用及发展,【网络技术论文】计算机网络技术的应用及发展(共2891字)...
  8. 《算法设计与分析》期末不挂科
  9. 6个工具让网页抓取变得轻而易举
  10. 群晖 android软件,群晖-手机端常用App
  11. 游戏后端自增id选型
  12. 冷酷仙境与世界尽头——《葫芦兄弟》人物赏析  作者:马伯庸
  13. Quartz 任务调度全攻略【转】
  14. 扫地机器人朋友圈文案_扫地机器人方案
  15. 英文论文如何看?转自知乎
  16. 超强大的手机端logo设计制作软件免费分享!
  17. Python正则表达式文本替换
  18. x64 可变参数原理完全解析
  19. UI自动化 | 痛彻心扉的脚本维护之路
  20. TypeScript 初学者入门学习笔记(一)

热门文章

  1. ajax type属性值,Ajax的dataType属性
  2. 近期隐私计算行业招聘(9月)
  3. fseek()使用详解
  4. 通过管理员模式 解决idea中 “npm不是内部或外部命令“
  5. Ubuntu中使用不了tree命令
  6. 构建进程终止异常: “C:\Program Files\Java\jdk1.8.0_333\bin\java.exe“ -Xmx700m -……
  7. 牧师与恶魔-智能寻路版
  8. 闲鱼公布十大转卖理由:“老婆不让”3 年高居榜首,“老公不让”首进前十
  9. 2017年我国将开始部署和建设IPv6地址项目
  10. C#Json怎么组合在一起_github上有哪些不错的C# .Net项目?