展开全部

import java.util.ArrayList;

import java.util.List;

public class TestList {

public static void main(String[] args) {

// 初始化一个集合(8)则表示初始化容量为8,默认加载32313133353236313431303231363533e78988e69d8331333337393530引子0.75的集合。加载因子建议不要动。

// 因数组大小固定,使用非常不便,所以系统实现了可自动扩充的集合,方便调用。

List list = new ArrayList();

QQ q1 = new QQ(1, "qq1", "info1");

QQ q2 = new QQ(2, "qq2", "info2");

QQ q3 = new QQ(3, "qq3", "info3");

QQ q4 = new QQ(4, "qq4", "info4");

// 添加可用add方法

// 添加list.add(1,q1)表示放在第二个位置,其他则延续,很容易出错,很少使用

list.add(q1);

list.add(1, q2);

list.add(q3);

list.add(q4);

// 显示所有list中的企鹅

for (QQ qq : list) {

// 打印一个对象,会调用对象的toString()方法,没有的话将调用父类的,直到Object。

System.out.println(qq);

}

// 第二种方式

QQ temp = null;

for (int i = 0; i

temp = list.get(i);

System.out.println(temp);

}

// 第二种方式扩展

// 这种方式用于遍历集合,且需要删除集合中的内容时可以这么用。即自己实现删除逻辑。

// 用上面方式,则将移除某项内容后,list后面的元素将前移,list.size()也会变小,删除后将不能遍历所有的。

// 而这种倒序遍历,删除的是已经遍历过的。不影响遍历。

for (int i = list.size() - 1; i >= 0; i--) {

temp = list.get(i);

// list.remove(i);// 符合某个条件,即可删除某条内容。

System.out.println(temp);

}

// 查看企鹅中帐号为3的情况,调用集合给定的方法。

QQ find = new QQ(3);

// 注意---->操作list各种给定方法时,如参数是object。则必须类实现equals方法。否则将使用==比较

// 查找某内容位置 >=0表示存在。

int id = list.indexOf(find);

// 获取

if (id >= 0) {

// 获取列表中的qq3信息

find = list.get(id);

System.out.println("id=" + id + find);

}

// 查询qq=1是否存在

QQ ex = new QQ(1);// id=5则不存在

boolean exist = list.contains(ex);

if (exist) {

System.out.println("集合中存在帐号=" + ex.getId() + "的QQ");

} else {

System.out.println("集合中不存在帐号=" + ex.getId() + "的QQ");

}

// 删除帐号= 1 = 5的qq

QQ del1 = new QQ(1);

QQ del5 = new QQ(5);

// list实现删除

boolean result1 = list.remove(del1);

boolean result5 = list.remove(del5);

if (result1) {

System.out.println("删除帐号id=" + del1.getId() + "成功");

} else {

System.out.println("删除帐号id=" + del1.getId() + "失败");

}

// 已经少了一个

System.out.println(list.size());

if (result5) {

System.out.println("删除帐号id=" + del5.getId() + "成功");

} else {

System.out.println("删除帐号id=" + del5.getId() + "失败");

}

System.out.println(list.size());

}

}

class QQ {

private long id;

private String name;

private String info;

public long getId() {

return id;

}

public QQ() {

}

public QQ(long id) {

this.id = id;

}

public QQ(long id, String name, String info) {

super();

this.id = id;

this.name = name;

this.info = info;

}

public void setId(long id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getInfo() {

return info;

}

public void setInfo(String info) {

this.info = info;

}

// 比较两个QQ是否一致,自定义规则,现在是id一样就一样,

// 只有实现了equals方法(继承于Object),对象比较时就能按自己的方式比较。否则会用==比较。

public boolean equals(Object obj) {

if (obj == null) {

return false;

}

if (this == obj) {

return true;

}

if (obj instanceof QQ) {

return ((QQ) obj).getId() == getId();

}

return false;

}

public String toString() {

return "[id=" + getId() + ",name=" + getName() + ",info=" + getInfo()

+ "]";

}

}

集合很常用,也很简单,可以看api文档

ArrayList和hashMap两个非常重要,一定要熟练的使用

java程序画企鹅_JAVA编程实现添加多个企鹅信息到list中相关推荐

  1. java程序并行机制_Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点。A.多线程B.健...

    Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点.A.多线程B.健 更多相关问题 根据句意及首字母完成单词1. -What c__________ is i ...

  2. java程序算法实例_java编程算法经典案例

    编程经典案例(持续更新中,敬请期待): 一.购物问题 小明的女朋友最喜欢在网上买买买了,可是钱包里钞票有限,不能想买啥就买啥.面对琳琅满目的物品,她想买尽可能多的种类,每种只买一件,同时总价格还不能超 ...

  3. java程序输出矩阵_java编程题之顺时针打印矩阵

    本文实例为大家分享了java顺时针打印矩阵的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; /** * * 剑指offer编程题(JAVA实现)--第19题 ...

  4. java程序运行图形_java编程 要用到继承的方法图形计算器项目: 实现一个图形计算器,程序运行后显示界面:请选择图形: 1 圆 2 矩形...

    共回答了12个问题采纳率:91.7% 代码如下.输入参数和计算结果都为整数.具体类型请自行修改.import java.util.Scanner; public class Test { public ...

  5. JDK文档是Java程序开发不可缺少的编程词典

    Java 构建商业应用程序或者某种物联网设备,构建了Android 操作系统,它为智能手机行业做出了杰出的贡献.借助 Android 操作系统,手机厂商才得以在早期与黑莓抗衡,之后又能够打破苹果的主导 ...

  6. java程序员昵称_Java程序员需要掌握的几个代码命名

    原标题:Java程序员需要掌握的几个代码命名 代码中到处都需要命名.作为程序员,我们得给类命名,给变量命名,给函数命名,给参数命名,给命名空间命名,等等等等.下面有20条小贴士能帮助你提高你的命名能力 ...

  7. java 反射 参数 注解_Java编程之反射中的注解详解

    "注解"这个词,可谓是在Java编程中出镜率比较高,而且也是一个老生常谈的话题.我们之前在聊Spring相关的东西时,注解是无处不在,之前我们简单的聊过一些"注解&quo ...

  8. java程序 图形界面_java 图形程序

    第二章 Java程序设计环境 安装 Java 开发工具包 JDK : 编写Java程序的程序员使用的软件 JRE : 运行Java程序的环境,包含JVM和基本类库, 但不包含编译器 SE, EE, M ...

  9. java程序员内功_Java程序员如何成为内功深厚的架构师

    一听到架构师,首先便想到的是在一间宽敞的房间中间坐着一位衣着得体的中年男人,望着落地窗外的风景凝思,万千思绪在脑海里翻腾,颇有运筹帷幄千里外的气势.程序员究竟是做架构师还是项目经理,最近看到微软潘正磊 ...

最新文章

  1. markdown 笔记
  2. 某股份制商业银行数据中心灾备建设经验
  3. shell 获取值 默认值
  4. OpenCL、OpenGL 同时工作
  5. 二叉树的先序、中序、后续遍历【Java】
  6. java 从控制台读取_转载 java从控制台读取输入的方法
  7. ActiveMQ之消息服务器平台(发邮件)
  8. 7-Flink的分布式缓存
  9. 使用Filter实现用户自动登录
  10. python词云图_Python生成一篇文章的词云图
  11. 图像匹配之归一化积相关灰度匹配
  12. Java实现对List集合去重的几种方法
  13. 版本控制工具 Git 和SVN 的区别
  14. linux服务器运维工程师怎么样,怎样才算合格的运维工程师?linux运维技术
  15. PPT里如何做流水图
  16. viser 饼图修改颜色
  17. @RequestParam使用
  18. 解决 “ImportError: attempted relative import with no known parent package“ 问题
  19. (八)Python数据分析与挖掘实战(实战篇)——中医证型关联规则挖掘
  20. 一款简单易用的拓扑图检测工具

热门文章

  1. 微信小程序二手书籍交易平台系统设计与实现
  2. app爬虫appium获取借贷宝,无忧等等(控制文件)
  3. AVL树的插入(C++实现)
  4. 产品经理的职业发展路线是什么
  5. 昙花一现的nubia快充技术NeoCharge
  6. 手机html己停用怎么办,iphone已停用怎么办【图文】
  7. 计算机中逻辑运算顺序,【计算机系统】位运算与逻辑运算
  8. a73*2+a53*2指的是什么_在影视表演的训练和学习中,台词的正确练习技巧是什么?...
  9. pta编程题python答案提交显示非零返回_PTA中提交Python3程序的一些套路
  10. Linux上抓arp包,linux c arp协议分析一 - 捕捉局域网内的arp包