java学习(第四篇)数组
一、一维数组
1.声明,分配内存
int[] a=new int[10];
数组元素的数据类型 【】 数组名=new 类型 【数组元素个数】;
2.初始化
int[] a=new int[] {1,2,3,4};
int b[]= {5,6,7,8};
3.使用
for(int x:a )
{
System.out.println(x);
}
for(int i=0;i<4;i++)
{
System.out.println((i+1)+":"+a[i]);
}
二、二维数组
1.声明,内存分配
int[][]a=new int[2][] ;
int b[][];
b=new int [2][4];
int c[][];
c=new int[2][];
c[0]=new int[2];
c[1]=new int[3];
2.初始化
int b[][]= {{1,2,3},{4,5,6}};
3.遍历
package com.test01;
public class ArrayTest01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int b[][]= {{1},{2,3},{4,5,6}};
for(int k=0;k<b.length;k++) //length取一维数组的长度
{
for(int c=0;c<b[k].length;c++) //length取一维数组中的元素个数
{
System.out.print(b[k][c]); //按元素输出
System.out.print(" ");
}
System.out.println();//输出换行
}
}
}
4.填充替换数组元素
fill()方法
5.排序
package com.test01;
import java.util.Arrays;
public class ArrayTest02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a=new int[] {33,66,11,22};
Arrays.sort(a);
for(int c:a)
{
System.out.println(c); //按元素输出
}
}
}
6.复制数组
int[] a=new int[] {33,66,11,22};
int b[]=Arrays.copyOf(a, 2);
for(int c=0;c<b.length;c++) //length取一维数组中的元素个数
{
System.out.println(b[c]); //按元素输出
}
int[] a=new int[] {33,66,11,22};
int b[]=Arrays.copyOfRange(a, 2, 5);
for(int c=0;c<b.length;c++) //length取一维数组中的元素个数
{
System.out.println(b[c]); //按元素输出
}
}
7.查询
int index= Arrays.binarySearch(a,0,1,8);
在数组下标为0到1(不包括1)的范围内,查找“8”,找到返回索引,找不到返回-1;
三、常见算法
1.冒泡排序法
package com.test01;
public class PaomoSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]= {63,4,24,1,3,15};
PaomoSort s=new PaomoSort();
s.sort(a);
}
public void sort(int array[]) {
int t=0; //完成交换功能时的中间值
for(int i=0;i<array.length-1;i++) //i控制外层循环,只用来判断整个大循环要几次
{
for(int j=0;j<5-i;j++) //j控制内层循环,每次一次大循环里面的小循环怎样进行的
{
if(array[j]>array[j+1])
{
t=array[j];
array[j]=array[j+1];
array[j+1]=t;
}
}
}
showArray(array);
}
public void showArray(int[] array) {
// TODO Auto-generated method stub
for(int x:array)
{
System.out.print(x+" ");
}
}
}
2.直接选择排序法
public class XuanzeSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]= {63,4,24,1,3,15};
XuanzeSort s=new XuanzeSort();
s.sort(a);
}
public void sort(int[] array) {
// TODO Auto-generated method stub
int max;
for(int i=1;i<array.length;i++)
{
max=0; //把第一个元素作为最大值
for(int j=1;j<=6-i;j++)
{
if(array[j]>array[max])
{
max=j;
}
}
int t=array[array.length-i];
array[array.length-i]=array[max];
array[max]=t;
}
showArray(array);
}
public void showArray(int[] array) {
// TODO Auto-generated method stub
for(int x:array)
{
System.out.print(x+" ");
}
}
}
java学习(第四篇)数组的更多相关文章
- Java学习第四篇:数组,排序,查找
一.数组 1.一维数组 (1).数组的定义 数据类型 数组名[]=new 数据类型[大小] public class Demo1 { public static void main(String[] ...
- 从.Net到Java学习第四篇——spring boot+redis
从.Net到Java学习系列目录 “学习java已经十天,有时也怀念当初.net的经典,让这语言将你我相连,怀念你......”接上一篇,本篇使用到的框架redis.FastJSON. 环境准备 安装 ...
- java学习笔记(基础篇)—数组模拟实现栈
栈的概念 先进后出策略(LIFO) 是一种基本数据结构 栈的分类有两种:1.静态栈(数组实现) 2.动态栈(链表实现) 栈的模型图如下: 需求分析 在编写代码之前,我习惯先对要实现的程序进行需求分析, ...
- Java 学习 第四篇;面向对象(1)
1:关于继承为了保证父类的良好封装性,不会被子类随意改变,设计父类时通常隐藏父类的内部数据,把父类属性改为private如果父类中可以被重写,但不希望被其他类自由访问可用protected修饰;2:什 ...
- 从.Net到Java学习第十一篇——SpringBoot登录实现
从.Net到Java学习系列目录 通过前面10篇文章的学习,相信我们对SpringBoot已经有了一些了解,那么如何来验证我们的学习成果呢?当然是通过做项目来证明啦!所以从这一篇开始我将会对之前自己做 ...
- Java学习之注解篇
Java学习之注解篇 0x00 前言 续上篇文章,这篇文章就来写一下注解的相关内容. 0x01 注解概述 Java注解(Annotation)又称Java标注,是JDK5.0约会的一种注释机制. 和J ...
- Java学习之反射篇
Java学习之反射篇 0x00 前言 今天简单来记录一下,反射与注解的一些东西,反射这个机制对于后面的java反序列化漏洞研究和代码审计也是比较重要. 0x01 反射机制概述 Java反射是Java非 ...
- Java学习之jackson篇
Java学习之jackson篇 0x00 前言 本篇内容比较简单,简单记录. 0x01 Json 概述 概述:JSON(JavaScript Object Notation, JS 对象简谱) 是一种 ...
- Java学习日记基础篇(七) —— 数组、排序
数组 为什么要有数组? 案例:一个养鸡场有六只鸡,他们的体重分别为3kg,5kg,1kg,3.4kg,2kg,50kg.请问这六只鸡的总体重和平均体重是多少? public class test5 { ...
- java学习(四)
学号 20189214 <Java程序设计>第四周学习总结 教材学习内容总结 枚举 枚举是JDK1.5版本新增的特性(泛型.For-each等如今被广泛应用的特性也是由JDK1.5时所新增 ...
随机推荐
- JS 剑指Offer(一) 数组中的重复数字
题目:在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一个重复的数字. 分析: ...
- .Net 微服务架构技术栈的那些事
一.前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时 ...
- C - 饭卡
电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...
- iOS开发|从小公司到进大厂,我的进阶学习之旅!
iOS高级进发 OC源码下载地址 苹果开发文档 如何阅读苹果开发文档 GNUstep是GNU计划的项目之一,它将Cocoa的OC库重新开源实现了一遍 源码地址:http://www.gnustep.o ...
- 关于代码覆盖 or 冲突
关于代码覆盖 or 冲突 在使用git同步代码时,步骤一般为 commit -> pull -> push 那这个过程的意义何在呢? 首先是区分本地仓库 与 远程仓库,可以理解为本地git ...
- Jmeter 压力测试笔记(3)--脚本调试/签名/cookie/提升吞吐量/降低异常率/提升单机并发性能
import XXXsign.Openapi2sign;---导入jar包中的签名方法 String str1 = "12121"; ---需要被签名的字段:向开发了解需要哪些哪些 ...
- 怎么用scratch做大鱼吃小鱼
行走代码不说了.出鱼代码大概就是 棋子被点击时 重复执行 移到x:从()到()任意选一个数,y一样 克隆自己 等待你想要的秒数.吃鱼代码就是 当作为克隆体启动是 重复执行 如果碰到()那么 删除克隆体 ...
- Linux bash篇(四 命令)
1.一次执行多个命令 ; eg: ls -al ; touch data.txt 2.根据情况执行命令 && || cmd1 && c ...
- 合理使用CSS框架,加速UI设计进程
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://dzone.com/articles/how-to-speed-up-your-d ...
- Python操作rabbitmq系列(三):多个接收端消费消息
接着上一章.这一章,我们要将同一个消息发给多个客户端.这就是发布订阅模式.直接看代码: 发送端: import pikaimport sys connection = pika.BlockingCon ...