JAVA学习之数组
同一种类型数据的集合,其实数组就是一个容器
数组定义格式:
1.数据类型[] 变量名 = new 数据类型[数组长度]
int[] arr = new int[5];
2.数据类型[] 数组名 = new 数据类型[]{元素,元素,.....};
int[] arr = new int[]{3,5,4,9};
int[] arr = {3,5,8,9};
二、数组遍历
int[] arr = new int[3];
for(int i=0;i<arr.length;i++)
{
System.out.println(arr[i]);
}
int[] arr=new int[5]; int temp=arr[0];
for(int i=1;i<arr.length;i++)
{
if(temp<arr[i])
{
temp = arr[i];
}
}
常见的排序方式:选择排序和冒泡排序
①、选择排序
最值出现在第一位

for(int i=0;i<arr.length-1;i++)
{
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
int temp =arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
最值出现在最后位置
代码:
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-i-1;j++)
{
if(arr[j]<arr[j+1])
{
int temp =arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
外循环为行数
四、数组查找
折半查找,必须操作有序数组
public static int halfSearch(int[] arr,int key)
{
int min=0;
int max=arr.length-1;
int mid=(min+max)/2;
while(arr[mid]!=key)
{
if(min>max)
{
return -1;
}
if(arr[mid]<key)
{
min=mid+1;
}else if(arr[mid]>key)
{
max=mid-1;
}
mid=(min+max)/2;
}
}
第二种写法
public static int halfSearch2(int[] arr,int key)
{
int min=0;
int max=arr.length-1;
int mid;
while(min<=max)
{
mid=(min+max)>>1;
if(arr[mid]<key)
{
min=mid+1;
}else if(arr[mid]>key)
{
max=mid-1;
}else
{
return mid;
}
}
return -1;
}
折半查找实例:在一个有些数组中插入一个数,并保证数组还是有序数组
public static void main(String[] args)
{
int[] arr=new int[]{2,6,9,10,15,24,29,34,46};
//通过折半查找要插入的元素在数组中的位置
//如果存在这个元素的话就在这个元素所在数组位置插入
//如果不存在这个元素的话就返回最小索引的值
int key =11;
int index=halfSearch(arr,11); int[] arrTemp=new int[arr.length + 1];
for(int i=0;i<arr.length-1;i++)
{
arrTemp[i]=arr[i];
}
for(int i=arrTemp.length-1;i>=index;i--)
{
if(index==i)
arrTemp[i]=key;
else
arrTemp[i]=arrTemp[i-1];
}
for(int i=0;i<arrTemp.length-1;i++)
{
System.out.println(arrTemp[i]);
} }
public static int halfSearch(int[] arr,int key)
{
int min=0;
int max=arr.length-1;
int mid;
while(min<=max)
{
mid=(min+max)>>1;
if(arr[mid]<key)
{
min=mid+1;
}else if(arr[mid]>key)
{
max=mid-1;
}else
{
return mid;
}
}
return min;
}
JAVA学习之数组的更多相关文章
- JAVA学习笔记--数组初始化
JAVA中,数组只是相同类型的.用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.数组通过方括号下标操作符[]来定义和使用,要定义一个数组只需在类型名后面加上一个方括号即可,如: int[] ...
- Java学习之数组的简单用法
•概念 其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作. 数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配: 而数组的定义语法有两种 ...
- java学习之数组(二)
在上一节中我们讲到了数组的概念,定义,以及在内存当中的表现形式.那么这里我们来说一下,数组的另一种定义方式. 在上一篇当中我们规定是这个样子定义数组的, class ArrDemo { public ...
- java学习之数组(一)【内存】
在java语言当中,为了更方便多个数据的管理,这里提供数组. 比如说,现在我们有一组数据,7,8,9,9,为了保存这四个数据,我们分别要定义变量来保存,少了还好说.但是假如,有100多个数据呢,我们一 ...
- java学习笔记 --- 数组
一.Java的内存分配 A:栈内存: 存储局部变量,只要是在方法中定义的变量都是局部变量.一旦变量的生命周期结束该变量就被释放. B:堆内存: 存储所有new出来的,及实体(对象),每一个实体 ...
- Java学习:数组工具类Arrays
数组工具类Arrays java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法,用来实现数组常见的操作. public static String toString(数组) ...
- Java学习:数组的使用和注意事项
数组 数组的概念:是一种容器,可以同时存放多个数据值 数组的特点: 数组是一种引用数据类型 数组当中的多个数据,类型必须统一 数组的长度在程序运行期间不可以改变 数组的初始化:在内存当中创建一个数组, ...
- Java学习day6数组
---恢复内容开始--- Java数组 Java 语言中提供的数组是用来存储固定大小的同类型元素.你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number ...
- java学习之—数组的曾删改查
/** * 数组的曾删改查 * Create by Administrator * 2018/6/8 0008 * 上午 9:54 **/ public class HighArray { priva ...
- Java学习之==>数组【array】
一.定义数组 /** * 一维数组定义 * * 为数组插入元素 */ public void case1() { // 声明 int[] arr1; // 声明+初始化 int[] arr2 = ne ...
随机推荐
- flask中的目录解析
首先我们看一下博客blog的封面,flask和django都属于web框架.不过flask属于轻量级web框架,功能的实现是通过扩展实现的,extension.py 中存放各个对象,具体的功能通过对象 ...
- 团队冲刺DAY5
团队冲刺DAY5 今天的内容是组件和事件处理这一部分,也就是需要扣一个消息系统的图形界面. 提到这部分,就不得不说Java Swing. 常用组件及部件 JTextField:文本框 JTextAre ...
- http相应状态码大全
100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分 101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议 200 OK 一切正常,对GET ...
- jsp页面通过ajax取值/展示数据及分页显示
jsp页面通过ajax从后台获取数据,在页面展示,并实现分页效果代码: [JavaScript部分代码] 1 <script> function getComposition(pageno ...
- android service 样例(电话录音和获取系统当前时间)
关于android service 的具体解释请參考: android四大组件--android service具体解释.以下将用两个实例具体呈现Android Service的两种实现. 一个是st ...
- 分布式-技术专区-Redis并发竞争key的解决方案详解
Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题:缓存击穿.缓存雪崩.缓存和数据一致性,以及今天要谈到的缓存并发竞争.这里的并发指的是多个redis的clie ...
- oracle中hint 详解
Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比. 此时就需要DBA进行 ...
- Javascript基础二(程序的三大结构)
程序的三大结构: 顺序结构,选择结构,循环结构 程序的单分支结构-if语句: 当条件判断为真true时,执行花括号内的语句,如果条件为假false,跳过花括号内的语句 if(条 ...
- ORACLE PL、SQL编程
PL(Procedural Language)过程化的编程语言,是在SQL的基础上增加的部分,如:变量的使用.流程控制等, 重点学习Oracle和MySQL创建存储过程及流程控制的异同. 一.存储过程 ...
- ASE: CODEnn Reproduce
Background 第二次结对编程的任务是挑选一个用自然语言搜索相关代码片段的模型实现,并且可以提出自己的想法改进.这个任务很cool,前期做了不少调研.使用自然语言搜索相关代码片段现在是个很受关注 ...