栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

java学习记录(2)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java学习记录(2)

活动地址:CSDN21天学习挑战赛

关于数组

虽然用new,但是大小确定后不可更改。

动态初始化:

定义:数据类型 数组名 = new 数据类型 [大小]         

int [][] = new int [m][n];    //m个有n个元素的元素

先声明再创建:数据类型 数组名[ ];或  数据类型 [ ]数组名;数组名 = new 数据类型[大小];

静态初始化:

数据类型 数组名 [ ] = {元素值,元素值...};

值传递与地址传递:

数字直接复制导致地址传递,新数组值改变引起旧数组值同时改变,解决需用值传递

地址传递:

int array[] = new int [5];

int arrayNew[] = array;

//array与arrayNew的值同时改变

值传递:

int array[] = new int []{1,2,3,4};

int arrayNew[] = new int [array.length];

System.arraycopy(array,0,arrayNew,0,array.length);//也可以使用循环进行赋值

第一个参数表示源数组
第二个参数表示源数组要复制的起始位置
第三个参数表示目标数组
第四个参数表示要复制的长度

小结:只要使用new新开辟空间,就可以避免浅复制的问题。

数组拷贝:

int []array1 = {1,2,3,4,5};
int []array2 = Arrays.copyOf(arr1,5);

传回新的数组,不影响原来数组,相当于封装了一个new和循环赋值的操作。

第二个参数是新数组长度,多处的空间默认置0(通常第二个参数为array.length * 2来扩容数组大小)

Arrays工具类的使用

java.util.Arrays类即为操作数组的工具类,包含了用来操作数组的各种方法,比如搜索、排序等

 c++中,通过bool传参给sort的第三个参数进行自定义排序(默认升序)

Java中,可以分为操作数组或者操作对象

操作数组:

Integer[] temp = {4,3,7,9,2,4,6,0};    //定义integer,以对象的形式操作
  Arrays.sort(temp, new Comparator() {
      public int compare(Integer a, Integer b) {
          return b > a;    //自定义降序排列
      }
  });

操作对象:

在对象内部通过覆写compareTo函数,自定义排序规则

@Override
	public int compareTo(Object o) {
		// TODO Auto-generated method stub

		if (o instanceof Student) {
			Student s = (Student) o;
			if (this.age > s.age) {
				return 1;
			} else if (this.age == s.age) {
				return 0;
			} else {
				return -1;
			}
		}
		return 0;

	}

注意返回值类型为int,因为在比较字符串时,会出现以下几种情况:

比较的两个字符串首字母不同:返回首字母的ASCII码差值

比较的两个字符串首字母相同:则比较下一个字符,直至字符不同,返回ASCII码的差值

两个字符串不一样长,可以参与比较的字符又完全一样:返回两个字符串的长度差值如‘aa123456’与'aa',返回6

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1036544.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号