Java_数组
一、java数组
1、数组定义:数组就是形象于一个容器(容器即可理解为:装东西的容器)
2、数组特征:数据是连续的,分配大小固定,数组中数据类型完全一致
创建规则:int[] arr = new int[10] //创建字符类型为init,长度为10的数组
package com.jd.lcj.test; /**
* Created by lcj on 2016/6/29.
*/
public class while01 {
public static void main(String[] args)
{
int[] arr = new int[10];////创建一个长度为10的整型数组
arr[0] = 123; //o:表示数组中的第一元素
arr[1] = 133;
arr[2] = 143;
arr[4] = 'A';//正确,因为char和int可以互相转化
System.out.println("数组4的数值为:"+ arr[4]); //数组4的数值为:65 [assiilc码中对应的值]
// arr[2] = 'dfdsf'; //设置的数组为整形不是字符串形式
System.out.println("数组长度为:"+ arr.length); //打印数组长度
//数组下标超界
arr[10] = 100;
System.out.println("数组长度为:"+ arr.length);
//java.lang.ArrayIndexOutOfBoundsException 表示数组超越规定的长度
}
}
二、数组分类
1)动态数组
对数组中的元素进行动态传值,
//动态数组,在数组长度为10 中可传任意数字
//数组的动态初始化【数组的长度只能写于new对象的后面】
int[] arr = new int[10];////创建一个长度为10的整型数组
arr[0] = 123; //o:表示数组中的第一元素
arr[1] = 133;
arr[2] = 143;
arr[4] = 'A';//正确,因为char和int可以互相转化
2)静态数组
定义:数组中的元素是固定,不能超过规定的数组长度
创建规则: int[] srry ={11,22,334,55,6,6,77}; //创建一个整形数组,长度为7
public class while01{
public static void main(String[] args)
{
//静态初始化
int[] srry ={11,22,334,55,6,6,77};
System.out.println("srry数组长度为:"+ srry.length);//arry数组长度为:7
System.out.println("srrry数组中第四个为:"+ srry[4]); //srrry数组中第四个为:6
System.out.println("srry第八个数组为:"+ srry[8]);//不能超过数组长度7
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
}
}
三、数组简单操作
1)遍历
何为遍历?
简而言之,就是将数组中的元素从头到尾一次访问一遍。
方式:循环遍历或通过数组下标反问
public class while01{
public static void main(String[] args)
{
//静态初始化
int[] srry ={11,22,334,55,6,6,77};
System.out.println("srry数组长度为:"+ srry.length);//arry数组长度为:7
System.out.println("srrry数组中第四个为:"+ srry[4]); //srrry数组中第四个为:6
//通过for循环对数组中的元素进行遍历
for (int i = 0 ;i<srry.length;i++)
{
System.out.print(srry[i] + " ");//输出:11 22 334 55 6 6 77
}
}
}
2)CRUD
3)排序
使用java自带Arrays.sort()实现数组排序
package com.jd.lcj.test; import java.util.Arrays;
public class while01{
public static void main(String[] args) {
//静态初始化
int[] srry ={11,22,334,55,6,6,77};
//通过for循环对数组中的元素进行遍历
for (int i = 0 ;i<srry.length;i++)
{
System.out.print(srry[i] + " ");//输出:11 22 334 55 6 6 77
}
System.out.println("\n----------升序排列--------------\n");
Arrays.sort(srry); //
//对数组进行升序排序
for (int i = 0 ;i<srry.length;i++)
{
System.out.print(srry[i] + " ");//6 6 11 22 55 77 334
}
System.out.println("\n--------降序排列------------\n");
for (int i = srry.length-1 ;i>=0;i--)
{
System.out.print(srry[i] + " ");//334 77 55 22 11 6 6
}
}
}
练习2:
打印出数组中最小或最大的元素,并进行升序排序
package com.jd.lcj.test;
import java.util.Arrays;
import java.util.Scanner;
public class while01 {
//对数组进行排序(升序、降序)
public static void main(String[] args) {
int[] arr = new int[10];//设置一个动态数组范围在10
int min;//最小值
int max;//最大值
Scanner in = new Scanner(System.in); //创建scanner对象,接收从控制台输入
for(int i=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个整数:");
arr[i]=in.nextInt(); //什么类型next后面就跟什么类型,将用户随机输入动态元素放置在一个数组中arr[i]
// System.out.print(arr[i]+ "");
}
for(int i=0;i<arr.length;i++) { //循环打印数组中输出的数字并数值间隔为一个空格
System.out.print(arr[i]+" ");
}
System.out.println("\n------------------------\n");
Arrays.sort(arr);//对动态数组进行升序排序
min = arr[0];
max = arr[arr.length-1]; //按照下标对数组中的元素进行定位,从0开始升序
System.out.println("最小的元素是:"+min);
System.out.println("最大的元素是:"+max);
}
Java_数组的更多相关文章
- Java_数组1_16.5.12
声明整型数组a: int[] a; 这时,只声明了变量a,还应该使用new运算符创建数组: int[] a=new int [100];(数组长度不要求是一个常量:new int[n]会创建一个长度为 ...
- java_数组的定义与操作
数组定义和访问 数组概念 数组概念: 数组就是存储多个数据的容器,数组的长度固定,多个数据的数据类型要一致. 数组的定义 方式一 数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度 ...
- Java_数组, 懒得整理了 ---------------------> 未完, 待续
待续 public class TestArray { public static void main(String[] args) { String[] s1 = {"双儿", ...
- day06 Java_数组_方法_参数
精华笔记: 数组: 复制: System.arraycopy(a,1,b,0,4); int[ ] b = Arrays.copyOf(a,6); 排序: Arrays.sort(arr); //升序 ...
- java_数组作缓存池的不可变类实例
package ming; public class CacheImmutale { private static int MAX_SIZE = 10; private static CacheImm ...
- Java_基础篇(数组的反转)
数组反转也是Java的基础. 数组反转要求掌握的是: 1).创建一个数组,在内存中申请一块空间. 2).实例化数组. 3).对数组的了解.如:数组的长度,数组的下标,数组的表示方法. 4).数组的交换 ...
- day05 Java_循环_基本类型数组
精华笔记: 循环结构: for结构:应用率高.与次数相关的循环 三种循环结构的选择规则: 先看循环是否与次数相关: 若相关----------------------------直接上for 若无关, ...
- ooday03 Java_引用类型数组_继承_super_向上造型
引用类型数组: 点击查看代码 1)Bomb[] bs = new Bomb[3]; bs[0] = new Bomb(100,200); bs[1] = new Bomb(200,300); bs[2 ...
- java_不知道数据类型情况下,数组遍历-反射
if(items.getClass().isArray){ this.collection = new ArrayList(); int length = Array.getLength(items) ...
随机推荐
- 图表控件Edraw Max免费下载地址
Edraw Max软件能使学生.老师和商务人士创建并发布各种设计图,它是一个集所有功能于一身的图表控件软件,它可以轻松地创建具有专业外观的流程图.组织结构图.网络图.商业演示图.建筑设计图.思维导图. ...
- Ubuntu 升级VisualBox后无法启动 Kernel driver not installed (rc=-1908)
VisualBox之所以在Linux上比传统的VMware快得多,关键一点就是它和Linux内核的结合比较紧密,这也是开源的优点. 不过Linux内核更新很频繁,每次更新内核后启动VirtualBox ...
- iOS:开发者中心证书创建流程
一,首先点击开发者首页(https://developer.apple.com/)里面的Member Center.二,输入开发者账号和密码,点击sign in登录.三,点击Certificates, ...
- codeforces round367 div2.C (DP)
题目链接:http://codeforces.com/contest/706/problem/C #include<bits/stdc++.h> using namespace std; ...
- DXUT初步理解
关于DXUT框架: DXUT(The DirectX Utility Library) 是建立在Direct3D9 和Direct3D10 API上的一个程序框架.它的目标是建立一个强大而容易使用的D ...
- [SYSU]每周一赛
2014年每周一赛第一场 A.Cutting Sausages B.Rectangular Fields //待做 ...
- msp430 问题及解决记录
----------------------------- 2015.4.28 问题:开发板串口显示的内容为乱码 解决:使用的是原先产品主板的15200的波特率设置,但看来或者是开发板不支持11520 ...
- Linux 下网络性能优化方法简析
概述 对于网络的行为,可以简单划分为 3 条路径:1) 发送路径,2) 转发路径,3) 接收路径,而网络性能的优化则可基于这 3 条路径来考虑.由于数据包的转发一般是具备路由功能的设备所关注,在本文中 ...
- 分享"狼用"API一個
API People that are interested in using our service for automated caching of their newly created .to ...
- C++ Primer : 第十二章 : 动态内存之unique_ptr和weak_ptr
unique_ptr 一个unique_ptr拥有它所管理的对象,与shared_ptr不同,unique_ptr指向的对象只能有一个用户.当unique_ptr被销毁后,它所指向的对象也被销毁. 定 ...