Java学习笔记之:Java数组
一、介绍
数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。
Java语言中提供的数组是用来存储固定大小的同类型元素。
你可以声明一个数组变量,如numbers[100]来代替直接声明100个独立变量number0,number1,....,number99。
二、笔记
1.一维数组
/**
* 数组:用来表示一种固定长度相同数据类型的组合
*
* @author HuTiger
*
*/
public class ArrayStudy { public static void main(String[] args) { int[] array = { 1, 2, 3, 4, 5 };// 整型数组 长度是5 String[] strs = { "AA", "BB", "CC" };// 字符串数组 长度是 3 // 数组的声明方式 : 类型和变量名
int[] array1; // 最常用
int array2[]; // 偶尔使用
int[] array3; // 基本不用 // 数组的初始化方式:有两种
/*
* 静态初始化:必须在声明的时候进行初始化
*/
//int[] array = { 1, 2, 3, 4, 5 }; /*
* 动态初始化:必须与new关键字一起使用,需要指定固定长度
*/
// String[] strs = null;
// strs=new String[5]; // String[] strs=new String[5]; /*
* 动态初始化的时候,数组中的每个元素的值是对应的数据类型的默认值
*/
// int[] array4=new int[5];
// System.out.println(array4[1]);
// System.out.println(array4[2]);
// System.out.println(array4[3]);
//
// String[] str1=new String[5];
// System.out.println(str1[1]);
// System.out.println(str1[2]);
// System.out.println(str1[3]); /*
* byte short int long float double boolean char 引用数据类型
* 0 0 0 0 0.0 0.0 false \u0000 null
*/ /*
* 获取数组中元素的值:可以通过他的下标索引来获取到对应位置的元素的值。下标是从0开始
* 数组的长度:可以通过array.length 属性获取。ps:长度是属性
*/
int[] arrays={9,4,5,5,4,4};
System.out.println(arrays[0]);
//获取数组的长度
System.out.println(arrays.length); //通过数组的下标对数组中对应位置的元素进行赋值
arrays[1]=10;
System.out.println(arrays[1]); String str="adsfvg";
//获取字符串的长度是通过方法来获取的
System.out.println(str.length()); int[] longarray={8,7,4,2,0,4,8,6,2,0,1,5,0,0,10};
for (int i = 0; i < longarray.length; i++) {
System.out.print(longarray[i]+" ");
}
System.out.print("\n");
/*
* 使用while循环输出
* 数组的最大index为 length-1
*/
int i=0;
while(i<longarray.length)
{
System.out.print(longarray[i]+" ");
i++;
}
}
}
2.二维数组
package com.hgd.study3; /**
* 二维数组:
* 如何创建二维数组
* 二维数组的遍历
* @author HuTiger
*
*/
public class ErWeiArray { public static void main(String[] args) { //静态初始化
int[][] array={{1,2,3},{1,2,3},{3,2,1},{3,2,1}}; for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]);
}
System.out.println("\n");
} //动态初始化,需要对数组中的每一个元素进行动态初始化
int[][] arrays=new int[5][];
System.out.println(arrays.length);
System.out.println(arrays[0]);
array[0]=new int[3];
System.out.println(arrays[0]); }
}
3.数组练习
package com.hgd.study3; import java.awt.geom.FlatteningPathIterator; import javax.swing.text.StyledEditorKit.ForegroundAction; /**
* 排序
*
* @author HuTiger
*
*/
public class ArrayPratice {
public static void main(String[] args) { }
/*
* 冒泡排序法
*/
private static void MaoPao() { int[] array = { 7, 5, 9, 1, 3, 6 };
for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
int tmp = 0;
if (array[i] > array[j]) {
tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
} /*
* 求{2,1,6,5,4}最大值最小值平均值
*/
private static void GetMaxMinAvg() {
int[] array = { 2, 2, 3, 4, 6 };
int max = array[0];
int min = array[0];
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
if (array[i] > max) {
max = array[i];
}
if (min > array[i]) {
min = array[i];
}
}
System.out.println("最大值:" + max);
System.out.println("最小值:" + min);
System.out.println("平均值:" + (float) sum / array.length);
} /*
* 现在有如下一个数组:int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,,7,6,7,0,5};
* 要求将以上数组中的0去掉,将不为0的值存入一个新的数组,新的数组为:int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}
*/
private static void RemoveZero() {
int oldArr[] = { 1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5 };
int[] tmparry = new int[oldArr.length];
int[] newArr;
int k = 0;
int count = 0;
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
tmparry[k] = oldArr[i];
count++;
k++;
}
}
newArr = new int[count];
for (int i = 0; i < newArr.length; i++) {
newArr[i] = tmparry[i];
}
for (int i = 0; i < newArr.length; i++) {
System.out.print(newArr[i] + " ");
} } /*
* 去除重复数组元素
*/
private static void RemoveRepeat() {
int[] array = { 1, 1, 1, 2, 3, 3, 4 };
int lengt = 0;
int count = 1;
for (int i = 0; i < array.length; i++) {
int l = i, r = i;
while (--i >= 0) {
if (array[i] == array[l]) {
count++;
break;
} }
while (++r <= array.length - 1) {
if (array[i] == array[r]) {
count++;
}
}
if (count == 1) {
lengt++;
}
}
int[] newArr = new int[lengt];
int index = 0;
for (int i = 0; i < array.length; i++) {
int l = i, r = i;
while (--i >= 0) {
if (array[i] == array[l]) {
count++;
} }
while (++r <= array.length - 1) {
if (array[i] == array[r]) {
count++;
}
}
if (count == 1) {
lengt++;
}
}
} private static void RemoveRepeat2() {
int oldArr[] = { 2, 0, 3, 2, 9, 0 };
int lengh = 0;
int a = 0;
int aIndex = -1;
int count=0;
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] == a) {
aIndex = i;
break;
}
}
for (int i = 0; i < oldArr.length; i++) {
for (int j = i + 1; j < oldArr.length; j++) {
if (oldArr[i] == oldArr[j] && oldArr[j] != a) {
oldArr[j] = a; }
}
if(oldArr[i]==a)
{
count++;
}
}
lengh=aIndex==-1?oldArr.length-count:oldArr.length-count+1;
int[] newArr=new int[lengh];
int index=0;
for (int i = 0; i < newArr.length; i++) {
if(oldArr[i]!=a||i==aIndex){
newArr[index]=oldArr[i];
index++; }
} } }
Java学习笔记之:Java数组的更多相关文章
- Java学习笔记十:Java的数组以及操作数组
Java的数组以及操作数组 一:什么是数组: 数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩 数组中的元 ...
- Java 学习笔记(4)——java 常见类
上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...
- Java学习笔记之—Java基础
将学习到的JAVA基础用xmind记录了下来,需要原件的可以私信
- Java学习笔记--通过java.net.URLConnection发送HTTP请求
http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...
- java 学习笔记1 java语言概述及开发环境
高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...
- Java 学习笔记 (三) Java 日期类型
以下内容摘自: https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...
- JAVA学习笔记之JAVA 对象引用以及赋值
关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没 ...
- 8.4(Java学习笔记)java脚本引擎(Rhino)
一.java脚本引擎 java脚本引擎是沟通java和脚本语句之间的桥梁,可以通过对应的脚本引擎在java中调用各种脚本语言. 二.脚本引擎执行脚本代码 ScriptEngineManager:为Sc ...
- Java学习笔记51:数组转ArrayList和ArrayList转数组技巧
ArrayList转数组: public class Test { public static void main(String[] args) { List<String> list = ...
- Java学习笔记3(数组)
1.数组的定义: 第一种: public class ArrayDemo{ public static void main(String[] args){ //定义数组 int [] arr = ne ...
随机推荐
- mysql 的数据类型
mysql 的数据类型(描述的是字段)三大类:一.整型:1.tinyint(M),其中M是显示宽度,需要配合zerofill,就是前面0填充,存储单位为1个字节(8位),无符文是最大能存储范围0000 ...
- SharePoint 2010/SharePoint 2013 Custom Action: 基于Site Collection 滚动文字的通知.
应用场景: 有时候我们的站点需要在每个页面实现滚动文字的通知,怎么在不修改Master Page的情况下实现这个功能?我们可以使用Javascript 和 Custom Action 来实现. 创建一 ...
- DVDRW光驱无法读DVD刻录盘
原文地址:http://www.douban.com/note/206741292/ 所有的DVD RW驱动器,不能识别DVD ROM光盘问题,都是因为DVD区域没有给定造成的,除非设备损坏!在计算机 ...
- Z480联想笔记本突然没有了声音
这几天笔记本突然没有了声音,重启几次都没有效果. 1.检查了声卡驱动,没有发现问题: 2.检查是否设置了静音,没有问题: 有人说重装驱动,懒得重装,于是下面的一个操作给解决了: 在“设备管理器”中找到 ...
- android开发获取屏幕高度和宽度
宽度:getWindowManager().getDefaultDisplay().getWidth(); 高度:getWindowManager().getDefaultDisplay().getH ...
- php 安全处理方案
Safe::mysqlSafe(); sql注入,升级5.3.6以上版本php 方案一:将所有请求中所有数据(get/post/cookie)实现mysql_escape_string进行安全处理. ...
- SQL SERVER调优常用方法
说起SQL SERVER的调优,我想大伙也很想知道这方面的知识.本人也正在探索的路上,大家有什么好的意见,欢迎一起探讨.研究.博取众人之长,才能扬长避短.本文中的内容主要是摘自<程序员的SQL金 ...
- 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3
// test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...
- Matlab中mat2cell的使用
怎样用mat2cell将一个100*100的矩阵分成10个10*100的矩阵? 根据帮助中 c = mat2cell(x,m,n)应该这样写 mat2cell(x,[10 10 10 10 10 10 ...
- NYOJ-469 擅长排列的小明 II AC 分类: NYOJ 2014-01-02 22:19 159人阅读 评论(0) 收藏
最初的第一印象是和组合数一个性质的题目.所以用了回溯法,结果,你懂的... #include<stdio.h> #include<math.h> void dfs(int n, ...