一、ArrayList 容器

1、记事本

package booknote;

import java.util.ArrayList;

public class NoteBook {
private ArrayList<String> notes=new ArrayList<String>();//引入ArrayList类,容器;包括容器类型,内容类型 public void add(String s)//增加字符串
{
notes.add(s);//ArrayList 自带的add
}
public void add(String s, int location)// add 函数重载
{
notes.add(location, s);
}
public int getSize()//得到字符串的个数
{
return notes.size();
}
public String getNote(int index)//获取第n个字符
{
return notes.get(index);
}
public void removeNote(int index)//删除 注意void 不返回值就可以了
{
notes.remove(index);
}
public String[] list()
{
String[] a=new String[notes.size()];
// for(int i=0;i<notes.size();i++)
// {
// a[i]=notes.get(i);
// } notes.toArray(a); //黄色和绿色都可以实现将notes中的字符串赋给 字符串数组a中,一个是使用遍历的方法,一个是使用自带函数
return a;
} public static void main(String[] args) { NoteBook nb=new NoteBook();
nb.add("first");
nb.add("second ");
nb.add("third",0);//插入到0位置
String[] a=nb.list();
for(String s:a)
{
System.out.println(s);
}
System.out.println(nb.getNote(0));//得到0位置的字符串 System.out.println("\n");
nb.removeNote(0);//删除0位置元素
System.out.println(nb.getSize());
a=nb.list();//刷新a
for(String s:a)
{
System.out.println(s);
}
} }

2、对象数组

package Hello;

public class hello {

	public int SUM(int a,int b)//必须创建对象调用
{
return a+b;
} public static int Sum(int a,int b)//static 方便在没有创建对象的情况下调用
{
return a+b;
} public static void main(String[] args) {
// TODO Auto-generated method stub
int x=10;
int y=5;
hello num=new hello();
System.out.println(Sum(x,y));//直接调用就可以
System.out.println(num.SUM(x,y));//必须创建对象,利用 对象.函数 才可以 } }

3、对象数组和普通数组赋值差异

package Hello;

class Value{ //新建类这样建
private int i;
public void set(int i)
{
this.i=i;
}
public int get()
{
return i;
} } public class hello { public static void main(String[] args) { Value[] a=new Value[10];
for(int i=0;i<a.length;i++)
{
a[i]=new Value();
a[i].set(i);
}
for(Value v:a)
{
System.out.print(v.get()+" ");
v.set(0);
}
System.out.println();
for(Value v:a)
{
System.out.print(v.get()+" ");
}
}
}

 

package Hello;

public class test {

	public static void main(String[] args) {
int[] a=new int[10];
for(int i=0;i<a.length;i++)
{
a[i]=i;
}
for(int v:a)
{
System.out.print(v+" ");
v=0;//无效
}
System.out.println();
for(int v:a)
{
System.out.print(v+" ");
}
System.out.println();
for(int i=0;i<a.length;i++)
{
a[i]=0;
}
for(int v:a)
{
System.out.print(v+" ");
}
} }

可以看到在对象数组中for each可以改变赋值

但是在普通数组中 for each 不可以改变赋值。

这是因为,对象数组中指向的是对象的位置,可以改变对象的位置上的值。而int[]这类数组,指向的是数组上的值,不能通过值改变值。

4、

package Hello;

class Value{ //新建类这样建
private int i;
public void set(int i)
{
this.i=i;
}
public int get()
{
return i;
}
// public String toString() //转化为字符串输出
// {
// return ""+i;
// } } public class hello { public static void main(String[] args) { Value[] a=new Value[5];
for(int i=0;i<a.length;i++)
{
a[i]=new Value();
a[i].set(i);
}
for(Value v:a)
{
System.out.println(v);
}
}
}

得到的其实是位置。

加入public String toString()后程序如下图

package Hello;

class Value{ //新建类这样建
private int i;
public void set(int i)
{
this.i=i;
}
public int get()
{
return i;
}
public String toString() //转化为字符串输出
{
return ""+i;
} } public class hello { public static void main(String[] args) { Value[] a=new Value[5];
for(int i=0;i<a.length;i++)
{
a[i]=new Value();
a[i].set(i);
}
for(Value v:a)
{
System.out.println(v);
}
}
}

 

二、set容器

package Hello;

import java.util.ArrayList;
import java.util.HashSet; public class test { public static void main(String[] args) {
ArrayList<String> s=new ArrayList<String>();
s.add("first");
s.add("second");
s.add("first");
for(String a:s)
{
System.out.println(a);
}
System.out.println(s);
System.out.println("************************"); HashSet<String> s1=new HashSet<String>();
s1.add("first");
s1.add("second");
s1.add("first");
s1.add("airst");
for(String a:s1)
{
System.out.println(a);
}
System.out.println(s1);
} }

HashSet容器可以去重并且排序。

三、Hashmap  

可以利用HashMap生成键值对。

package coins;

import java.util.HashMap;
import java.util.Scanner; public class coin {
private HashMap<Integer,String> coinnames=new HashMap<Integer,String>();//Integer是int 的包裹类型 //public void Coin()
public coin()
{
coinnames.put(1,"penny");
coinnames.put(10,"dime");
coinnames.put(25,"quarter");
coinnames.put(50,"half-dolar");
coinnames.put(50,"yuan");
System.out.println("********************");
System.out.println(coinnames);//输出HashMap集合
System.out.println(coinnames.keySet());//输出键集合
System.out.println(coinnames.values());//输出值集合
System.out.println(coinnames.values().size());//键(值)长度
System.out.println("********************");
for(Integer i:coinnames.keySet())
{
System.out.print(i+" ");
}
System.out.println("\n********************");
for(String i:coinnames.values())
{
System.out.print(i+" ");
}
System.out.println("\n********************");
for(Integer i:coinnames.keySet())
{
System.out.print(coinnames.get(i)+" ");
}
System.out.println("\n********************");
}
public String getName(int amount)
{
if(coinnames.containsKey(amount))
return coinnames.get(amount);
else
return "Not Found";
} public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
coin money=new coin();
//money.Coin();
System.out.println(money.getName(n));
in.close();
} }

黄色部分,既可以直接用原类来增加键值对(public coin),

也可以通过构造函数(public void Coin)来增加,如果利用构造函数的话,必须得调用函数才行。

再有注意他们输出的方法。

Java 对象容器的更多相关文章

  1. [转]JAVA对象容器

    要用Java实现记事本的功能.首先列出记事本所需功能: 可以添加记录(字符串): 可以获得记录条数: 可以删除其中某一条记录: 可以获得指定第几条的记录: 可以列出所有的记录. 如果这个记事本是某个大 ...

  2. Java对象容器总结

    泛型容器类 容器类型: ArrayList 元素类型: 有排序 String:里面存放的是对象的管理者,而不是具体的对象,所以string类型有null值 集合容器 容器类型 Set 元素类型 唯一性 ...

  3. JSP隐式对象是JSP容器为每个页面提供的Java对象

    JSP 隐式对象 JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明.JSP隐式对象也被称为预定义变量. JSP所支持的九大隐式对象: 对象 描述 reque ...

  4. Java进阶学习(3)之对象容器(上)

    对象容器 顺序容器 记事本的例子 UI设计和业务逻辑要分离 接口设计 add(String note); getSize(); getNote(int index); removeNote(index ...

  5. 理解Java对象序列化

    http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html 1. 什么是Java对象序列化 Java平台允许我们在内存中创 ...

  6. Java基础学习总结——Java对象的序列化和反序列化

    一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存 ...

  7. 《精通Hibernate:Java对象持久化技术详解》目录

    图书信息:孙卫琴 电子工业出版社 第1章 Java应用分层架构及软件模型: 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1 ...

  8. Java集合容器简介

    Java集合容器主要有以下几类: 1,内置容器:数组 2,list容器:Vetor,Stack,ArrayList,LinkedList, CopyOnWriteArrayList(1.5),Attr ...

  9. Java基础学习总结--Java对象的序列化和反序列化

    一.序列化和反序列化的概念 把对象转换成字节序列的过程称之为对象的序列化 把字节序列恢复为对象的过程称之为对象的反序列化 对象序列化的主要用途: 1)把对象的字节序列永久的保存到硬盘上,通常放在一个文 ...

随机推荐

  1. 算法入门——二分查找,旅行商问题,大O表示法

    一. 算法入门 博主在市面上发现了很多,很多有关书算法的书籍,但是真正能够让初学者易懂的算法书籍,只是一点点,以下我讲以 Aditya Bhargava写的一本关于算法的入门书籍,为参考,这本书非常的 ...

  2. 【译】使用FormData对象

    系列文章说明 原文 FormData对象能让你生成一系列用于XMLHttpRequest发送的键值对.它主要的目的在于发送表单数据,但也能独立用于传输有键形式的数据.其传输的数据格式和表单使用subm ...

  3. 超详细的HDFS读写流程详解(最容易理解的方式)

    HDFS采用的是master/slaves这种主从的结构模型管理数据,这种结构模型主要由四个部分组成,分别是Client(客户端).Namenode(名称节点).Datanode(数据节点)和Seco ...

  4. 使用VMware12在CentOS7上部署docker实例

    今天下午算是自己搞了一下午才搞出来,对于认为linux是自己死穴的我,现在能搞出来,心里滋味不是一丢丢,哈哈~~~ 算了,废话不多说,直接上图!步骤如下: 1.在安装好VMware12并安装好了cen ...

  5. Linux系统简单文件操作命令

    项目 内容 作业课程归属 班级课程链接 作业要求 作业要求链接 学号-姓名 17041419-刘金林 作业学习目标 1)学习Linux的基本操作命令:2)在终端上运用命令行去实现基本文件操作 1.查看 ...

  6. 2020年ubuntu sever1804 安装和配置

    最后一次折腾linux服务器,应该是13的我的VPS.因为转行后,没有及时关注vps续费的问题,结果过期,所有的数据丢失了 当时觉得,反正都不做了,丢了就丢了吧,可现在想起来,实在是太后悔了. 今天, ...

  7. Git使用ssh公钥

    Git使用ssh公钥 一.  何谓公钥 1.很多服务器都是需要认证的,ssh认证是其中的一种.在客户端生成公钥,把生成的公钥添加到服务器,你以后连接服务器就不用每次都输入用户名和密码了. 2.很多gi ...

  8. 大数据学习之scala-环境搭建

    scala 下载网站 https://www.scala-lang.org/download/ 安装scala要先安装java,并且配置java环境,官网也有说明 不过国内的网站下载不下来可以访问:  ...

  9. c++作业22题

    一.单选题(共22题,100.0分) 1 已知int i=5,下列do-while循环语句的循环次数是 do{ cout<<i - -<<endl; i - -; }while ...

  10. MySQL 【优化宝典】

    概述 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计数据库 ...