数组 utils.Arrays 面向对象
来源:互联网 发布:unetbootin windows 编辑:程序博客网 时间:2024/06/06 21:03
数组和常用算法
//forEach循环、可变参数在jdk1.5之后才有。
数组:存储一组相同类型数据的数据结构
特点:
1. 元素可以是任何一种数据类型(基本引用)
2. 每个元素都有对应的一个索引索引:用于访问元素
3. 创建好后其大小不能在改变,但其中元素的值可以动态改变
4. 数组下标从0开始
5. 都有属性length(数组长度)
声明:
数据类型【】数组名 | 数据类型数组名【】(类型:基本引用:例:MyData[] c)
创建:
New 关键字 成功创建后的三个动作:
A. 创建的数据对象b.内存中分配空间c.初始化默认值
数组默认值:
Byte、short、Int、long:0 double:0.0 float:0.0
结论:整形0 浮点0.0 引用类型:String:null
数组创建方式以及赋值:
1. Int 【】arr=new int【3】;
arr[0]=1; arr[2]=2;arr[3]=3;|for(。。。){ a=2*i;}
2. String str[]=new String{“”,””};
3. Int arr[]={1,2,3};
注意:数组定义时 数组引用变量(int arr[])放在栈中 具体数据(值)存放在堆中
数组引用方式:arr[index] 数组名+索引
Index:整型常量或者整形表达式
数组越界异常:java.lang.ArrayIndexOutOfBoundsException
原因:元素索引值大于数组长度
增强for循环 forEach :
1.遍历时无法访问索引值à无法动态改变元素值
2.只适合遍历显示元素内容
可变参数: (类型…变量名) double…doub
使用前提:1.定义方法时使用2.确定该方法一定要传参数3.参数类型确定,个数不确定
算法:——————————————————————————》
冒泡:
int arr[] = new int[]{11,2,34,21,45,34};
inttemp;
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr.length-i-1; j++) {//i表示每次不需要比较的个数
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
System.out.print(arr+”“);//注意位置
}
选择排序:
每一趟选择最小者放到前面拍好的序中
for (int i = 0; i < arr.length-1; i++) { intk=i; //默认最小者索引 假设最小者为arr【0】 for(int j = i+1; j < arr.length; j++) { //选最小的记录 if(arr[j]<arr[k]){ k=j; } } if(i!=k){//把最小者放在arr位置 升序 inttemp=arr; arr=arr[k]; arr[k]=temp; }
查找:
1. 顺序查找参数:数组 key:要查找的元素
2. 二分查找
前提:已经排好序的数组
思想:中间位置:int middle=(low+upper)/2 然后将待查找的值与middle比较
2.1直接返回
2.2《 low不变 upper=middle-12.3》low=middle+1
注意:初始:low=0;upper=arr.length-1因为不知道要比较多少次故用while(low<=upper)
二维数组arr.length:行arr.length列
Java.util.Arrays一维数组
Sort(int a[]):升序binarySerach(int[]a,key):二分查找
toString();转换为字符串
copyOF(intarr[],newLength)//复制数组 0填充 参数:数组 新数组大小
copyOfRang(int arr[],int from,int to);[ ):包前不包后复制数组部分元素
fill(int arr【】):所有元素值被同一改变
System.arrayCopy(object src,int srcPos,int[] dest,int destPost,int length):
Src:原数组
SRCPOS:原数组起始位子
dest:目标数组
destPos:目标数组起始位置,
length:赋值长度
面向对象
面向过程:一步一步执行前面的步骤执行结果直接影响后面的步骤
程序=算法+数据结构
面向对象:
功能模块化,属性,方法(动作)
区别:面向过程算法有优先,面向对象“如何操作数据”优先
类:属性(数据/状态)+方法(行为/操作)
对象:时间万物皆对象一个个真实存在的实体
理解:类描述了对象的行为(方法)和特征(属性),是对象的模板
步骤:
1. 抽象出类
2. 利用模板(类)创建对象 new 只要new就会开辟空间
3. 调用对象的方法和属性
- 数组 utils.Arrays 面向对象
- 数组,面向对象基本概念
- 面向对象-数组工具
- Java基础---面向对象(StringBuffer类、Arrays类、Integer类)
- JS数组及面向对象
- java面向对象上:数组
- day06_java二维数组++面向对象
- 方法,数组,面向对象思想
- Arrays数组。。
- Arrays数组
- Java面向对象基础--对象数组
- Java.面向对象.01.对象、类、数组
- 黑马程序员_Java语言_常见对象(StringBuffer,数组,Arrays)
- 数组对象的Arrays排序两种方式
- Arrays.asList转换数组为集合List对象
- 常见对象_StringBuffer、数组高级以及Arrays、Integer、Character总结
- 数组 Arrays and associative arrays
- java面向对象思想之数组介绍
- Codeforces Round #327 (Div. 2)-C. Median Smoothing
- easyui datagrid 点击不选中
- 计算机技术的应用
- mysql进阶(二十六)MySQL 索引类型(初学者必看)
- Android启动系统相机,打开图库选择图片
- 数组 utils.Arrays 面向对象
- 设置texfield的 return key
- JDBC-处理属性为text的大文本问题
- TDI简单的UDP网络通信
- Android开发中的动画(上)--补间动画与帧动画
- 存储引擎
- Event Bus的坑,持续更新
- LAMP架构应用实战—Apache服务介绍与安装01
- 严重抗议【鲁教版】小学语文教材