Java数组的运用详解

java数组的运用详解

目录一,数组的含义:二,数组的创建1,动态初始化2,静态初始化三,数组遍历四,Arrays.deepToString()与Arrays.toString()的区别五,java中Arrays类的常用方法1,数字排序2,字符串排序,先大写后小写3,严格按字母表顺序排序,也就是忽略大小写排序 CASE_INSENSITIVE_ORDER4,反向排序, Collections.reverseOrder()5,忽略大小写反向排序 (先忽略大小写,再反向排序)6,选择数组指定位置进行排序六,数组去重七,数组删除,增加元素八,数组与List相互转换总结

一,数组的含义:

一维数组:相同数据类型的元素的集合。

二位数组:存放数组的数组,也就是说数组里存的还是数组的数据形式。

二,数组的创建

一维数组

1,动态初始化

数据类型[] 数组名=new 数据类型[数组长度];

例:int[] a=new int[5];

2,静态初始化

数据类型[] 数组名={数组0,数组1,数组2,数组3,…};

例:int[] b=new int[]{1,2,3,4,5};

数据类型[] 数组名={数组0,数组1,数组2,数组3,…};

例:int[] c={1,2,3,4,5}

二位数组

数据类型[][] 数组名={数组1,数组2,…};

例:int[][] a={{3,5},{7,9},{1,2}};

三,数组遍历

一维数组遍历

int [] arr={1,2,3,4,5};

for(int a=0; a < arr.length; a++){

 System.out.print(arr[a]);

}

运行结果:

12345

Arrays工具类中toString静态方法遍历

int [] arr={1,2,3,4,5};

System.out.print(Arrays.toString(arr));

运行结果:

[1, 2, 3, 4, 5]

二维数组遍历

int Arr[][]={{5,7,15},{8,4,11},{3,6,13}};

for (int i=0; i < Arr.length; i++) {

 for (int j=0; j < Arr[i].length; j++) {

     System.out.print(Arr[i][j]+" ");

 }

}

运行结果:

5 7 15 8 4 11 3 6 13

Arrays工具类中deepToString静态方法遍历

int b[][]={{5,7,15},{8,4,11},{3,6,13}};

System.out.println(Arrays.deepToString(b));

运行结果:

[[5, 7, 15], [8, 4, 11], [3, 6, 13]]

四,Arrays.deepToString()与Arrays.toString()的区别

Arrays.deepToString()主要用于数组中还有数组的情况,而Arrays.toString()则相反,对于Arrays.toString()而言,当数组中有数组时,不会打印出数组中的内容,只会以地址的形式打印出来。

例:

int a[][]={{5,7,15},{8,4,11},{3,6,13}};

System.out.println(Arrays.toString(a));

int b[][]={{1,2,3},{8,4,11},{3,6,13}};

System.out.println(Arrays.deepToString(b));

运行结果:

[[I@da2dbb, [I@176fe71, [I@fb509a]

[[1, 2, 3], [8, 4, 11], [3, 6, 13]]

五,Java中类的常用方法

Arrays类位于 java.util 包中,主要包含了操作数组的各种方法。

Arrays.fill(); //填充数组

int[] a=new int[5];//新建一个大小为5的数组

Arrays.fill(a,4);//给所有值赋值4

System.out.println(Arrays.toString(a));

int[] b=new int[5];//新建一个大小为5的数组

Arrays.fill(b, 2,4,1);//给第2位(0开始)到第4位(不包括)赋值6

System.out.println(Arrays.toString(b));

运行结果:

[4, 4, 4, 4, 4]

[0, 0, 1, 1, 0]

Arrays.sort(); //数组排序

1,数字排序

int[] a=new int[] { 4, 1, 3, -2, 10 };

Arrays.sort(a);

System.out.println(Arrays.toString(a));

运行结果:

[-2, 1, 3, 4, 10]

2,字符串排序,先大写后小写

String[] a=new String[] { “a”, “b”, “C” };

Arrays.sort(a);

System.out.println(Arrays.toString(a));

运行结果:

[C, a, b]

3,严格按字母表顺序排序,也就是忽略大小写排序 CASE_INSENSITIVE_ORDER

String[] a=new String[] { “a”, “b”, “C” };

Arrays.sort(a, String.CASE_INSENSITIVE_ORDER);

System.out.println(Arrays.toString(a));

运行结果:

[a, b, C]

4,反向排序, Collections.reverseOrder()

String[] a=new String[] { “a”, “b”, “C” };

Arrays.sort(a, Collections.reverseOrder());

System.out.println(Arrays.toString(a));

运行结果:

[a, b, C]

5,忽略大小写反向排序 (先忽略大小写,再反向排序)

String[] a=new String[] { “a”, “B”, “c”,“D” };

Arrays.sort(a, String.CASE_INSENSITIVE_ORDER);

Collections.reverse(Arrays.asList(a));

System.out.println(Arrays.toString(a));

运行结果:

[D, c, B, a]

6,选择数组指定位置进行排序

int[] a={3,2,1,8,6,5,4,7};

Arrays.sort(a,0,3);//给第0位(0开始)到第3位(不包括)排序

System.out.print(Arrays.toString(a));

运行结果:

[1, 2, 3, 8, 6, 5, 4, 7]

Arrays.toString(); //将数组中的内容全部打印出来

int[] a={3,2,1,5,4};

System.out.println(a);//直接将数组打印输出

String str=Arrays.toString(a); // Arrays类的toString()方法能将数组中的内容全部打印出来

System.out.println(str);

运行结果:

[I@da2dbb

[3, 2, 1, 5, 4]

Arrays.equals(); //比较数组元素是否相等

int[] arr1={1,2,3};

int[] arr2={1,2,3};

System.out.println(Arrays.equals(arr1,arr2));

System.out.println(arr1.equals(arr2));

运行结果:

true

false

因为equals比较的是两个对象的地址,不是里面的数,而Arrays.equals重写了equals,所以,这里能比较元素是否相等。

Arrays.copyOf();//复制数组

int[] a={3, 7, 2, 1};

int[] b=Arrays.copyOf(arr6, 4); //指定新数组的长度

int[] c=Arrays.copyOfRange(a, 1, 3); //只复制从索引[1]到索引[3]之间的元素(不包括索引[3]的元素)

System.out.println(Arrays.toString(b));

System.out.println(Arrays.toString©);

运行结果:

[3, 7, 2, 1]

[7, 2]

数组中是否包含某一个值

String[] array=;

String a=“aaa”;

String b=“fff”;

if (Arrays.asList(array).contains(a)) {

System.out.println("1");

}else {

System.out.println("2");

}

if (Arrays.asList(array).contains(b)) {

System.out.println("1");

}else {

System.out.println("2");

}

运行结果:

1

2

其它方法,详情见JAVA JDK_API

六,数组去重

1,利用set的特性去重

int[] arr11={1,2,3,4,5,6,7,8,9,0,3,2,4,5,6,7,4,32,2,1,1,4,6,3};

Set set2=new HashSet();

for (int i=0; i < arr11.length; i++) {

set2.add(arr11[i]);

}

System.out.println(set2);

int[] arr12=new int[set2.size()];

int j=0;

for (Integer i:set2) {

arr12[j++]=i;

}

System.out.println(Arrays.toString(arr12));

运行结果:

[0, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[0, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2,用List集合实现

int[] str={5, 6, 6, 6, 8, 8, 7,4};

List list=new ArrayList();

for (int i=0; i
if(!list.contains(str[i])) {

    list.add(str[i]);

}

}

System.out.println(“去除重复后的list集合”+list);

运行结果:

[5, 6, 8, 7, 4]

3,用hashSet或者TreeSet实现

Integer[] nums={ 5, 5, 6, 6, 6, 8, 8, 7, 11, 12, 12 };

HashSet hset=new HashSet(Arrays.asList(nums));

//TreeSet hset=new TreeSet(Arrays.asList(nums));

Iterator i=hset.iterator();

while(i.hasNsqOCHpsext()){

System.out.print(i.next());

}

运行结果:

56781112

4,用List和set实现

int[] nums={ 5, 6, 6, 6, 8, 8, 7 };

List numList=new ArrayList();

for (int i : nums)

numList.add(i);

Set numSet=new HashSet();

numSet.addAll(numList);

System.out.println(numSet);

运行结果:

[5, 6, 7, 8]

七,数组删除,增加元素

删除数组中其中一个元素

String [] str=;//删除php

List list=new ArrayList();

for (int i=0; i
list.add(str[i]);

}

list.remove(2); //list.remove(“Php”)

String[] newStr=list.toArray(new String[1]); //返回一个包含所有对象的指定类型的数组

System.out.println(Arrays.toString(newStr));

运行结果:

[Java, C++, C#, Python]

在数组中增加一个元素

String [] str=;//增加ruby

List list=new ArrayList();

for (int i=0; i
list.add(str[i]);

}

list.add(2, “ruby”);

String[] newStr=list.toArray(new String[1]); //返回一个包含所有对象的指定类型的数组

System.out.println(Arrays.toString(newStr));

运行结果:

[Java, C++, ruby, Php, C#, Python]

八,数组与List相互转换

数组转 List ,使用 JDK 中 java.util.Arrays 工具类的 asList 方法

String[] strs=new String[] ;

List list=Arrays.asList(strs);

for (String s : list) {

System.out.println(s);

}

List 转数组,使用 List 的toArray方法。无参toArray方法返回Object数组,传入初始化长度的数组对象,返回该对象数组

List list2=Arrays.asList(“aaa”, “bbb”, “ccc”);

String[] array=list2.toArray(new String[list2.size()]);

for (String s : array) {

System.out.println(s);

}

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

if(!list.contains(str[i])) {

    list.add(str[i]);

}

}

System.out.println(“去除重复后的list集合”+list);

运行结果:

[5, 6, 8, 7, 4]

3,用hashSet或者TreeSet实现

Integer[] nums={ 5, 5, 6, 6, 6, 8, 8, 7, 11, 12, 12 };

HashSet hset=new HashSet(Arrays.asList(nums));

//TreeSet hset=new TreeSet(Arrays.asList(nums));

Iterator i=hset.iterator();

while(i.hasNsqOCHpsext()){

System.out.print(i.next());

}

运行结果:

56781112

4,用List和set实现

int[] nums={ 5, 6, 6, 6, 8, 8, 7 };

List numList=new ArrayList();

for (int i : nums)

numList.add(i);

Set numSet=new HashSet();

numSet.addAll(numList);

System.out.println(numSet);

运行结果:

[5, 6, 7, 8]

七,数组删除,增加元素

删除数组中其中一个元素

String [] str=;//删除php

List list=new ArrayList();

for (int i=0; i
list.add(str[i]);

}

list.remove(2); //list.remove(“Php”)

String[] newStr=list.toArray(new String[1]); //返回一个包含所有对象的指定类型的数组

System.out.println(Arrays.toString(newStr));

运行结果:

[Java, C++, C#, Python]

在数组中增加一个元素

String [] str=;//增加ruby

List list=new ArrayList();

for (int i=0; i
list.add(str[i]);

}

list.add(2, “ruby”);

String[] newStr=list.toArray(new String[1]); //返回一个包含所有对象的指定类型的数组

System.out.println(Arrays.toString(newStr));

运行结果:

[Java, C++, ruby, Php, C#, Python]

八,数组与List相互转换

数组转 List ,使用 JDK 中 java.util.Arrays 工具类的 asList 方法

String[] strs=new String[] ;

List list=Arrays.asList(strs);

for (String s : list) {

System.out.println(s);

}

List 转数组,使用 List 的toArray方法。无参toArray方法返回Object数组,传入初始化长度的数组对象,返回该对象数组

List list2=Arrays.asList(“aaa”, “bbb”, “ccc”);

String[] array=list2.toArray(new String[list2.size()]);

for (String s : array) {

System.out.println(s);

}

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

list.add(str[i]);

}

list.remove(2); //list.remove(“Php”)

String[] newStr=list.toArray(new String[1]); //返回一个包含所有对象的指定类型的数组

System.out.println(Arrays.toString(newStr));

运行结果:

[Java, C++, C#, Python]

在数组中增加一个元素

String [] str=;//增加ruby

List list=new ArrayList();

for (int i=0; i
list.add(str[i]);

}

list.add(2, “ruby”);

String[] newStr=list.toArray(new String[1]); //返回一个包含所有对象的指定类型的数组

System.out.println(Arrays.toString(newStr));

运行结果:

[Java, C++, ruby, Php, C#, Python]

八,数组与List相互转换

数组转 List ,使用 JDK 中 java.util.Arrays 工具类的 asList 方法

String[] strs=new String[] ;

List list=Arrays.asList(strs);

for (String s : list) {

System.out.println(s);

}

List 转数组,使用 List 的toArray方法。无参toArray方法返回Object数组,传入初始化长度的数组对象,返回该对象数组

List list2=Arrays.asList(“aaa”, “bbb”, “ccc”);

String[] array=list2.toArray(new String[list2.size()]);

for (String s : array) {

System.out.println(s);

}

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

list.add(str[i]);

}

list.add(2, “ruby”);

String[] newStr=list.toArray(new String[1]); //返回一个包含所有对象的指定类型的数组

System.out.println(Arrays.toString(newStr));

运行结果:

[Java, C++, ruby, Php, C#, Python]

八,数组与List相互转换

数组转 List ,使用 JDK 中 java.util.Arrays 工具类的 asList 方法

String[] strs=new String[] ;

List list=Arrays.asList(strs);

for (String s : list) {

System.out.println(s);

}

List 转数组,使用 List 的toArray方法。无参toArray方法返回Object数组,传入初始化长度的数组对象,返回该对象数组

List list2=Arrays.asList(“aaa”, “bbb”, “ccc”);

String[] array=list2.toArray(new String[list2.size()]);

for (String s : array) {

System.out.println(s);

}

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注我们的更多内容!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值