`
大碗干拌
  • 浏览: 46077 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

java学习笔记(2)——函数

 
阅读更多
int a = 1;
a = a++;
1,取出a的值1作为a++表达式的值(a++表达式等于1)
2,a增加1变为2
3,执行赋值运算,a++表达式的值再赋给a,a又成为了1.
-----------------------------------------------
package pack01;


public class HexBie {
public static void main(String[] args){
int a = 1;
a = a++;
System.out.println(a);
int b = 1;
a = 1;
b = a++;
System.out.println(b);
a = 1;
for(int i=0;i<1000;i++){
a = a++;
}
System.out.println(a);
}
}
---------
1
1
1
-----------------------------------------------
数组拷贝函数
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
Arrays.copyOf(int[] original, int newLength) //6.0以后才有
-----------------------------------------------
package pack01;
import java.util.Arrays;
public class HexBie {
public static void main(String[] args){
int[] arr = {1, 2, 3, 4};
int[] arr2 = new int[2];
System.arraycopy(arr, 1,arr2,0, 2);
for(int i:arr2){
System.out.println(i);
}
int[] arr3 = new int[2];
arr3 = Arrays.copyOf(arr, 2);
for(int i:arr3){
System.out.println(i);
}
}
}
-------
2
3
1
2
-----------------------------------------------
数组的扩展问题:
java中数组的大小是固定的,数组对象是不能扩展的,可以利用数组复制的方法实现数组扩展
-----------------------------------------------
package pack01;
import java.util.Arrays;
public class HexBie {
public static void main(String[] args){
String[] arr1 = {"how","old"};
String[] temp = Arrays.copyOf(arr1, 5);
String[] arr2 = temp;
arr2[2] = "are";
arr2[3] = "you";
arr2[4] = "?";
for(String s:arr2){
System.out.print(s+"\t");
}
}
}
----------
how old are you ?
-----------------------------------------------
package pack01;
import java.util.Arrays;
public class HexBie {
public static void main(String[] args){
char[] arr1 = {'a','b'};
System.out.println(arr1);
//字符数组以字符串的形式输出
System.out.println(Arrays.toString(arr1));
int[] arr2 = {1, 2};
System.out.println(arr2);
//数字数组输出的是数组对象内存地址
System.out.println(Arrays.toString(arr2));
String[] arr3 = {"a","b"};
System.out.println(arr3);
//字符串数组输出的是数组对象的内存地址
System.out.println(Arrays.toString(arr3));
}
}
----------
ab
[a, b]
[I@de6ced
[1, 2]
[Ljava.lang.String;@c17164
[a, b]
-----------------------------------------------
/**
* 统计一个字符在字符串中的所有位置
*/
package pack01;
import java.util.Arrays;
public class HexBie {
public static void main(String[] args){
String str = "统计一个字符在字符串中的所有位置";
int[] arr = countAll(str, '字');
System.out.println(Arrays.toString(arr));
}


private static int[] countAll(String str, char c) {
int arr[]={};
for(int i=0;i<str.length();i++){
char c1 = str.charAt(i);
if(c == c1){
arr = Arrays.copyOf(arr, arr.length+1);
arr[arr.length-1] = i;
}
}
return arr;
}
}
------
[4, 7]
-----------------------------------------------
常见的排序方法:
正排序:由大到小。 反排序:由小到大。
1,冒泡法:
2,选择法:
3,插入法:
----------------------------------------------------
/**
*常用的排序
*/
package pack01;
import java.util.Arrays;
public class HexBie {
public static void main(String[] args){
int[] arr1 = {2,4,9,6,3,7,1,5,8};
int[] arr2 = {2,4,9,6,3,7,1,5,8};
int[] arr3 = {2,4,9,6,3,7,1,5,8};
maoPao(arr1); //冒泡法
xuanZe(arr2); //选择法
chaRu(arr3); //插入法
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));
System.out.println(Arrays.toString(arr3));
}
//将要插入的数和前面的比较
private static void chaRu(int[] arr) {
int t,j;
for(int i=0;i<arr.length;i++){
t = arr[i];
for(j=i-1;j>=0&&t<arr[j];j--){
arr[j+1] = arr[j]; //向后移
}
arr[j+1] = t;
}

}
//将最小的选择出来放在前面,依次类推
private static void xuanZe(int[] arr) {
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];
}
}
}

}
//两个两个交换,就像冒泡泡一样
private static int[] maoPao(int[] arr) {
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length-i-1;j++){
if(arr[j+1]<arr[j]){
arr[j+1] = arr[j+1]^arr[j];
arr[j] = arr[j]^arr[j+1];
arr[j+1] = arr[j+1]^arr[j];
}
}
}
return arr;
}
}
----------------
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
----------------------------------------------------
方法的递归调用:
递归调用不断在栈内存中声明变量,所以递归效率较低。
----------------------------------------------------
/**
* n的阶乘
*/
package pack01;
import java.util.Arrays;
public class HexBie {
public static void main(String[] args){
int y = f(4);
System.out.println(y);
}
public static int f(int n){
if(n==0) return 1;
int y = f(n-1)*n;
return y;
}
}
----------------------------------------------------
分享到:
评论

相关推荐

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《java jdk 7学习笔记》适合java的初中级读者,以及广大java应用开发人员。 作译者 林信良(网名:良葛格) 学历:台湾大学电机工程学系 经历:台湾升阳教育训练技术顾问、专业讲师,oracle授权训练中心讲师 ...

    c#学习笔记——学习心得

    名称空间:类似java中的包 集合: 代表: 访问修饰符:private、public、protected、internal:局部的 readonly:只读修饰符 new(新的)、static(静态的)、virtual(虚拟的)、override()、sealed(密封的)、abstranct...

    javascript从入门到跑路—–小文的js学习笔记(7)——–js函数

    javascript从入门到跑路—–小文的js学习笔记(1)———script、alert、document。write() 和 console.log 标签 … … javascript从入门到跑路—–小文的js学习笔记目录 ** 在说函数前,补充一个函数的作用域的知识...

    Python学习笔记(六)——–Python函数

    Python函数类似Java中的方法。 二、定义一个Python函数 Python中以def开始定义函数,无需注明函数的返回值类型。 函数名后跟(),其中放入函数所需要的参数,同样的参数不需要注明类型。 函数体以冒号开始,并且...

    JAVA学习笔记2020/4/27——Stream流、方法引用

    在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。 1.1 引言 传统集合的多步遍历代码几乎所有的集合(如Collection接口或Map接口等)都支持直接或间接的...

    javascript从入门到跑路—–小文的js学习笔记(10)——数组(一维数组、二维数组以及三维数组)和冒泡排序

    javascript从入门到跑路—–小文的js学习笔记(1)———script、alert、document。write() 和 console.log 标签 … … javascript从入门到跑路—–小文的js学习笔记目录 ** 含义: 使用单独的变量名来存储一系列的...

    c#学习笔记.txt

    C#学习笔记(2)【大 中 小】【打印】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号:日期:2004-07-11 人气:8092 出处: write by cash(天下第七) 2002.01.20 版权所有,翻录不究 cashcao@...

    swing界面设计之JTree

    (十七) Swing 学习笔记 108 Swing API 包括18个公共包: 108 例程1.1 HelloWorldSwing.java 109 例程2.2 HelloWorldJFrame.java 110 (十八) 动态加载文件树的java程序 111 FileSystemTree.java源代码 112 //内部类 ...

    oracle数据库笔记

    5.统计函数——列名应指定别名 35 6. Group By分组 36 7.Having子句 36 8.练习:表的查询 36 五. 在SQL *Plus中使用函数 37 1.字符串函数 37 2.数字函数 37 3.日期时间函数 38 4.转换函数 38 第五讲 修改SQL数据与...

    Python学习 | 一个JAVA程序员两天的Python入门笔记

    人物:一个心血来潮学习Python的JAVA程序员 文章目录vlog正文入门基础注释算数运算符及优先级程序执行原理变量概念和定义方式变量的命名变量的输入和输出数据类型数值型非数值型列表元组列表与元组的互相转换字典...

    javascript学习笔记(二) js一些基本概念

    1.typeof 操作符:用于检测给定变量的数据类型 代码如下: var message=”some string”; alert&#40;typeof message&#41;... 2.Object 的实例具有的属性和方法: constructor —— 保存用于创建当前对象的函数. hasOwn

    java安卓仿微信聊天软件源码-Front-end-stack:需要学习的前端知识

    java安卓仿微信聊天软件源码 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 ...

    asp.net知识库

    VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...

    java安卓仿微信聊天软件源码-lerningCenter:学习中心

    java安卓仿微信聊天软件源码 微注:在继续学习 & 积累,并率先于持续更新。 综合类 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    亚信java笔试题-js-designer:大前端学习资料汇总,激励自己一下

    亚信java笔试题 微注:在继续学习 & 积累,并率先于持续更新。 综合类 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 ...

    亚信java笔试题-keep-learning:收集跟前端有关的学习资讯

    亚信java笔试题 keep-learning 收集跟前端有关的学习资讯 在继续学习 & 积累,并率先于持续更新。 综合类 综合类 地址 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end ...

    java版五子棋源码-webstudy:我的第一个网络学习日志,内容html,js,php,css,

    java版五子棋源码 前端知识体系| 前端知识结构| Web前端开发大系概览| Web前端开发大系概览-中文版| Web Front-end Stack v2.2| 免费的编程中文书籍索引| 前端书籍| 前端免费书籍大全| 前端知识体系| 免费的编程中文...

Global site tag (gtag.js) - Google Analytics