JavaSE基础知识(4)—数组的应用(4.2数组的基本及高级使用)

  功能 代码 功能 代码
基本使用 正序打印
for(int i=0;i<arr.length;i++){
  System.out.println(arr[i]);
}


倒序打印

for(int i=arr.length-1;i>=0;i--){
  System.out.println(arr[i]);
}
求和、求平均
int sum = 0;
for(int i=0;i<arr.length;i++){
  sum+=arr[i];
}
和:sum
平均值:sum/arr.length


查找

int index=-1;
for(int i=0;i<arr.length;i++){
  if(arr[i]==带查找的元素){
    index = i;
    break;
  }
}
if(index==-1){//没找到}else{找到了}
求最值
int max = arr[0];
int indexMax = 0;
int min = arr[0];
int indexMin = 0;
for(int i=1;i<arr.length;i++){
  if(arr[i]>max){
    max = arr[i];
    indexMax = i;
  }
  if(arr[i]<min){
    min = arr[i];
    indexMin = i;
  }
}
最大值:max
最小值:min


排序(冒泡)

for(int i=0;i<arr.length-1;i++){
  for(int j=0;j<arr.length-1-i;j++){
    if(arr[j]>arr[j+1]){
      int t = arr[j];
      arr[j] = arr[j+1];
      arr[j+1]=t;
  }
}
复杂使用  赋值(传统方式=arr)   newArr = arr; 循环赋值
①创建新数组,长度=旧数组.length
  int[] newArr = new int[arr.length];
②循环将旧数组的元素依次赋值给新数组的每个成员
  for(int i=0;i<newArr.length;i++){
    newArr[i] = arr[i];

  }

 反转(方式1)
for(int i=0;i<arr.length/2;i++){
  //交换两个数
  arr[i] vs arr[arr.length-1-i]
}

反转(方式2)

①创建新数组,长度=旧数组.length
  int[] newArr = new int[arr.length];
②循环赋值
  for(int i=0,j=arr.length-1;i<arr.length;i++,j--){
    newArr[i] = arr[j];
  }
③将新数组的地址赋值给旧数组
  arr = newArr;

 高级使用  追加元素 假如待添加的元素:add
①创建一个新数组,长度为 arr.length+1
  int[] tempArr = new int[arr.length+1];
②循环赋值(将arr的元素依次赋值给tempArr)
  for(int i=0;i<arr.length;i++){
    tempArr[i] = arr[i];
  }
补充:前两步可以使用
  int[] tempArr=Arrays.copyOf(arr,arr.length+1);代替
③将add添加到最后一个空位上
  tempArr[tempArr.length-1] = add;
④将tempArr的地址赋值给arr
  arr = tempArr;
插入元素
待添加的元素:add
待插入的位置:index
①创建一个新数组,长度为 arr.length+1
  int[] tempArr = new int[arr.length+1];
②循环赋值(将arr的元素依次赋值给tempArr)
  for(int i=0;i<arr.length;i++){
    tempArr[i] = arr[i];
  }
补充:前两步可以使用
  int[] tempArr=Arrays.copyOf(arr,arr.length+1);代替
③循环后移
  for(int i=tempArr.length-1;i>index;i--){
    tempArr[i] = tempArr[i-1];
  }
④将add添加到index上
  tempArr[index] = add;
⑤将tempArr的地址赋值给arr
  arr = tempArr;
  System.out.println("插入成功!");

原文地址:https://www.cnblogs.com/truthseeking/p/9506988.html

时间: 2024-10-03 20:41:45

JavaSE基础知识(4)—数组的应用(4.2数组的基本及高级使用)的相关文章

JavaSe基础知识总结

Java基础知识总结 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. -------------------------------------------------------------------------

Java基础知识二次学习--第五章 数组

第五章 数组 时间:2017年4月26日15:11:30~2017年4月26日15:15:54 章节:05章_01节  视频长度:09:30 内容:一维数组的内存分析 心得: Java中数组是引用类型 栈里面存的数组的引用 实际对象在堆内存里面 (C与C++是分配在栈里的) 内存图: 元素为引用数据类型的数组 引用类型的数组如上图 时间:2017年4月26日15:16:22~2017年4月26日15:19:00 章节:05章_02节  视频长度:05:25 内容:数组元素的创建与使用 心得: 首

JavaSE基础知识(7)—常用类

一.包装类 1.理解 java为八大基本数据类型一一对应提供了引用类型,方便使用里面的属性和方法 2.包装类型 byte-->Byteshort-->Shortint-->Integerlong-->Longfloat-->Floatdouble-->Doublechar-->Characterboolean-->Boolean 3.常用方法 (1)Integer/Byte/Short/Long/Float/Double/Boolean 以Integer为例

Java基础知识强化12:Java中运用数组的四种排序方法

1.使用JavaApi文档中的Arrays类中的sort()进行快速排序 首先我们直接看代码如下: 1 package himi.text; 2 3 import java.util.Arrays; 4 5 public class TestDemo01 { 6 7 public static void main(String[] args) { 8 int[] array = {2,12,3,44,27}; 9 /** 10 * 利用使用JavaApi文档中的Arrays类中的sort()进行

JavaSE基础知识(2)—变量和运算符(2.2数据类型)

一.常见的数据类型 int:用于保存整型的double:用于保存浮点型的char:用于保存单个字符,要求字符值必须用单引号引起来String:用于保存字符串,要求字符串值必须用双引号引起来 二.数据类型的分类 ★ 三.基本数据类型详细介绍 一)整型   名称 所占字节空间 数值范围 byte 字节整型 1个字节 -27~27-1 short 短整型 2个字节 -215~215-1 int 整型 4个字节 -231~231-1 long 长整型 8个字节 -263~263-1 特点: 1.编译器默

JavaSE基础知识(3)—流程控制结构

一.顺序结构 1.说明 程序从上往下依次执行,中间没有任何跳转或选择2.特点 变量必须遵循 "前向引用" (局部变量必须先声明.赋值,然后再使用!) 二.分支结构(条件) 1.说明 程序从两条或多条路径中,选择一条去执行 2.分类   语法 执行顺序 注意事项   if结构  1.单分支 if(条件){ 代码块1; } 先判断条件是否成立, 如果成立,则执行代码块1.否则跳过if结构,往下执行 ①条件 的结果只能是boolean类型,形式可以为: 关系表达式 逻辑表达式 oolean变

JavaSE基础知识(5)—面向对象(5.1类和对象概念、创建及内存分配)

一.类和对象的相关概念 1.面向对象和面向过程的理解 面向对象和面向过程都属于解决问题的思考方式.面向过程:以执行者的角度思考问题,侧重于"怎么做",比较适合解决小型项目面向对象:以指挥者的角度思考问题,侧重于"谁来做",比较适合解决中大型项目面向对象和面向过程不能分割开来,二者相辅相成,缺一不可!宏观上通过面向对象思考,微观上通过面向过程思考! 2.类和对象的概念.关系.区别 (1)概念 对象:客观世界中所有可以被描述的事物都称为对象(万物皆对象).类:具有相同属

JavaSE基础知识(5)—面向对象(5.5 this和super关键字)

一.this关键字 1.说明 this关键字代表当前类的对象,可以访问本类的属性.方法.构造器注意:谁调用该方法,则this就指谁 2.语法 访问属性: this.属性名 = 值; System.out.println(this.属性名);访问方法: this.方法名();访问构造器: this([参数列表]); 3.注意事项 一般来讲如果本类内部访问当前类的成员,则直接访问即可,默认也是通过this调用的.当局部变量和成员变量重名时,则必须通过this才能调用到成员变量! 二.super关键字

JavaSE基础知识(5)—面向对象(方法的重写与重载)

一.重写 1.说明 子类对继承过来的父类的方法进行改造,这种现象称为方法的重写或覆盖或覆写(Override) 2.要求 方法签名完全一致,jdk5.0之后,允许返回类型可以是子类类型,权限修饰符可以更大了 二.重载 1.说明 java中提供了一种机制,允许同一个类中多个同名但参数列表不同的方法存在 2.要求 ①同一个类中②方法名必须相同③参数列表必须不同(参数类型.个数或顺序至少有一样不同)④返回类型无要求⑤修饰符无要求 三.重写与重载对比★   说明 发生范围 方法名 参数列表 返回类型 修