Java基础——数组
一、大数据
如果基本的整型和浮点型精度不能够满足需求,那么可以使用java.math包含中的两个类:BigInteger和BigDecimal。
这两个类处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整型运算,BigDecimal实现了任意精度的浮点数运算。
使用静态的valueOf方法可以讲欧通的数值转换为大数据:
BigInteger a=BigInteger.valueOf(700);
还有,人们不能用加(+)或减(-)等来处理大数值。而必须用类中的add和multiply方法。
BigInteger c=a.add(b);//c=a+b
BigInteger d=c.multiply(b.add(BigInteger.valueOf(2)));//d=c*(b+a)
二、数组
数组是一种数据结构,用来储存同一类型值的集合
1.声明了一个整型数组a: int [] a;
2.创建数组a: int [] a=new int[100];
import java.util.Arrays;
public class Test2 {
public static void main(String[]args){
int [] a=new int[]{5,-1,-88,2,4,44,12,-90};
Arrays.sort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
}
public class Test1 {
public static void main(String[]args){
int [] a={5,-1,-88,2,4,44,12,-90};//用冒泡的方法把它由小到大的排序
sort(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}//函数执行完,再数一遍
}
static void sort(int[]a){
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++)
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
/*如果上面i<a.length-1和j<a.length-1-i都填上等号变成 i<=a.length-1和j<=a.length-1-i
* 则会发生脚标越界异常的情况,如下:
* Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
*/
注意:
* 创建一个数组时,所有元素都初始化为0;
* boolean数组的元素会初始化为false;
* 对象数组的元素则初始化为一个特殊值null,这表示这些元素还未存放任何对象。(比如:for(int i=0;i<100;i++)names[i]="";
三、数组的拷贝
要使用Arrays类的copyOf方法:
int [] a=Arrays.copyOf(a,a.length);
四、多维数组
多维数组将使用多个下标访问数组元素,它适用于表示表格或更复杂的排列形式。
格式类似如下:
int [] [] a={{.......},{.......},{.......},{.......},{.......}}
提示:如果想要打印一个二维数组的数据元素列表,可以调用:
System.out.println(Arrays.deepToString(a));
输出格式为:
[[1,2,3,3],[4,5,7,65],[7,5,7,8]]
例子:
/*This program show how to store tabular data in a 2D array.
* @version 1.40 2004-02-10
* @author Cay Horstmann
*/
public class CompoundInterest {
public static void main(String[] args) {
final double STARTRATE = 10;
final int NRATES = 12;
final int NYEARS = 10; double[] interestRete = new double[NRATES];
for (int j = 0; j < interestRete.length; j++)
interestRete[j] = (STARTRATE + j) / 100.0; double[][] balances = new double[NYEARS][NRATES];
for (int j = 0; j < balances[0].length; j++)
balances[0][j] = 120000; for (int j = 1; j < balances.length; j++) {
for (int j1 = 0; j1 < balances[j].length; j1++)
{
double oldBalance = balances[j-1][j1]; double interest = oldBalance * interestRete[j1];
balances[j][j1] = oldBalance + interest;
}
}
for (int j = 0; j < interestRete.length; j++)
System.out.printf("%9.0f%%",100*interestRete[j]);
System.out.println();
for (double[] row : balances) {
for (double b : row)
System.out.printf("%10.2f", b);
System.out.println();
}
}
}
打印结果:

五:不规则数组
例子:
/**
* This program demonstrates a triangular array.
*
* @version 1.20 2004-02-10
* @author Cay Horstmann
*/
public class LotterArray {
public static void main(String[] args) {
final int NMAX = 10; int[][] odds = new int[NMAX + 1][];
for (int n = 0; n <= NMAX; n++)
odds[n] = new int[n + 1]; for (int n = 0; n < odds.length; n++)
for (int k = 0; k < odds[n].length; k++) {
int lotteryOdds = 1;
for (int i = 1; i <= k; i++)
lotteryOdds = lotteryOdds * (n - i + 1) / i;
odds[n][k] = lotteryOdds;
}
for (int[] row : odds) {
for (int odd : row)
System.out.printf("%4d", odd);
System.out.println();
}
} }
打印结果:

Java基础——数组的更多相关文章
- Java基础——数组应用之StringBuilder类和StringBuffer类
接上文:Java基础——数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...
- java基础-数组的折半查找原理
java基础-数组的折半查找原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让你写一个数组的查找功能,需求如下:在一个数组中,找一个元素,是否存在于数组中, 如果存在就返回 ...
- Java基础-数组常见排序方式
Java基础-数组常见排序方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数据的排序一般都是生序排序,即元素从小到大排列.常见的有两种排序方式:选择排序和冒泡排序.选择排序的特 ...
- 《Java基础——数组的定义与使用》
Java基础--数组的定义与使用 一. 一维数组: 格式一: 数组类型 数组变量[]=new 数据类型[长度]; //需要后续赋值,且后续赋值时只能为单个元素赋值. 或 数组类型 数组变量 ...
- Java基础——数组Array
一.数组基本概念 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组有三 ...
- Java基础--数组(Arrays)
数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理.本篇博客是对Java基础中的数组进行详细说明. 目录: 数组的概述 一维数组 ...
- java基础---数组的基本概念(1)
学习资源来自尚硅谷java基础学习 1. 数组的概念 数组(Array), 是多个相同类型数据按一定顺序排列的集合, 并使用一个名字命名, 并通过编号的方式对这些数据进行统一管理. 数组属于引用数据类 ...
- JAVA基础——数组详解
学习JAVA中数组的使用 一.什么是数组? 问:编写代码保存 4 名学生的考试成绩. 答:简单啊,定义 4 个变量呗 问:那"计算全年级 400 名学生的考试成绩",肿么办 答: ...
- Java基础——数组复习
数组是一个变量,存储相同数据类型的一组数据 声明一个变量就是在内存空间划出一块合适的空间 声明一个数组就是在内存空间划出一串连续的空间 数组长度固定不变,避免数组越界 数组是静态分配内存空间的,所 ...
- Java基础——数组应用之字符串String类
字符串String的使用 Java字符串就是Unicode字符序列,例如串“Java”就是4个Unicode字符J,a,v,a组成的. Java中没有内置的字符串类型,而是在标准Java类库中提供了一 ...
随机推荐
- Effective C++笔记:继承与面向对象设计
关于OOP 博客地址:http://www.cnblogs.com/ronny 转载请注明出处! 1,继承可以是单一继承或多重继承,每一个继承连接可以是public.protected或private ...
- boost bind及function的简单实现
前面在做 http server 的时候,需要做一个回调的接口,要求能够绑定类的函数以及普通的函数到这个回调里,对于这种应用要求,选择 boost 的 bind 和 function 是最合适不过了, ...
- 05_python_字典
一.字典定义 字典是python中唯一的映射类型,以{ }括起来的键值对组成,在dict中key是唯一的.在保存时,根据key来计算一个内存地址,然后把key-value保存至地址中.这种算法是has ...
- 跟着刚哥学Redis
NoSQL 简介 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".是对不同于传统的关系型数据库的数据库管理系统的统称.它泛指非关系型的数据库.随着 ...
- iOS数据持久化--归档
一.简介 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦: 偏好设置(将所有的东西都保存在同一个文件夹下面,且主要用于存储应用的设置信息 归档:因为 ...
- js DOM 案例
模态框 <html> <head> <meta charset="UTF-8"> <title>模态框</title> ...
- MyBatis框架介绍及其实操
一.基本概念和介绍 数据持久化的概念 数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称.例如,文件的存储.数据的读取等都是数据持久化操作.数据模型可以是任何数据 ...
- asp.net core中遇到需要自定义数据包解密方法的时候
最近将公司的项目用.netcore重写, 服务的http外部接口部分收发消息是DES加解密的, 那么在asp.net core mvc的action处理之前需要加入解密这个步骤. 我第一想到的是用fi ...
- Microsoft Azure Storage架构分析
Microsoft云存储服务分为两个部分,SQL Azure和Azure Storage.云存储系统的可扩展性和功能不可兼得,必须牺牲一定的关系数据库功能换取可扩展性.Microsoft实现云存储的思 ...
- OpenShift Redhat 搭建NodeJS环境
https://openshift.redhat.com/ OpenShift 是 redhat 公司推出的一个 PaaS 云计算应用平台,开发者可在上面构建.测试.部署和运行应用程序,它支持 Jav ...