首页 > 编程知识 正文

java set遍历,java数组arrays排序

时间:2023-05-06 12:42:33 阅读:53592 作者:2199

这个班在日常开发中还非常常用。 今天总结Arrays工具类的一般方法。 最常用的是asList、sort、toStream、equals、copyOf。 另外,可以深入学习Arrays的排序算法,这非常有用。

所有方法都是:将在以下类中进行测试

公共类阵列测试{

String[] array=new String[]{'a '、' c '、'2'、'1'、' b'};

integer [ ] ints=new integer [ ] { 5,1,4,3,2 };

.

}

As列表

该方法可以将数组转化为List,List提供了许多操作方法,使用方便。

@Test

公共语音测试1 () {

listlists=Arrays.aslist(Array );

}

sort排序和并行sort并行排序

sort比较常用,可以根据元素按照自然的排序规则进行排序,也可以设置排序元素的开始位置。

@Test

公共语音软件(

/*Arrays.sort(Array;

for (stringstr :阵列) {

system.out.println(str;

() /

Arrays.sort(Array,2,5 );

system.out.println (Arrays.deep tostring ) array ); //[a,c,1,2,b]

}

parallelSort使用并行排序算法进行排序。 但是,自己测试的时候,数据量太小,速度可能没有明显的变化。

二进制搜索

请注意,必须找到目标元素所在的位置,然后首先对其进行排序。

@Test

公共语音二进制搜索(

//二进制搜索需要确保排名

system.out.println (Arrays.binary search ) array,' c ' ); //-6

Arrays.sort(Array );

system.out.println (Arrays.binary search ) array,' c ' ); //4

}

复制关闭

复制数组。 第一种用法是在目标长度不够时使用0来补充位。 第二种用法支持复制目标从开始位置到结束的数组。

@Test

公共语音复印of () {

//位数不够的话,需要补缺

integer [ ] result=arrays.copy of (ints,10 );

for (inti :结果) {

system.out.println(I;

}

system.out.println------------------------------------------ -。

//位数足够的话,采取最小的排列

result=Arrays.copyof(ints,3 );

for (inti :结果) {

system.out.println(I;

}

system.out.println------------------------------------------ -。

//

result=Arrays.copyofrange(ints,2,4 );

for (inti :结果) {

system.out.println(I;

}

}

deepEquals深度比较、deepHashCode生成hashcode、deepToString深度打印

这些方法基本上是用递归的写法。

@Test

公共语音深度测试(

String[] array2=new String[]{'a '、' c '、'2'、'1'、' b'};

系统. out.println (arrays.deep equals (array,array2); //深度比较两个序列是否相同

system.out.println (Arrays.deep hashcode ) array );

system.out.println (arrays.deep hashcode ) Array2);//如果是两个序列deepEquals,他们的hashcode一定是一样的

//格式化输出数组

system.out.println (Arrays.deep tostring ) array );

}

equals比较

比较两个序列是否相等

@Test

公共语音质量(

String[] array2=new String[]{'a '、' c '、'2'、'1'、' b'};

//1比较参照是否相同

//2比较是否有空值

//3对比长度是否相同

//4与每个人的元素的对比

系统. out.println (arrays.equals (array,array2);

}

菲尔

根据目标元素填充数组

@Test

公共语音文件() {

Arrays.fill(Array,' test ' );

system.out.println (Arrays.deep tostring ) array ); //[test、test、test、test和test]

}

桁架环

打印数组元素

@Test

公共语音字符串(

系统. out.println (arrays.tostring (array ) ); //[a,c,2,1,b]

}

至流

现在可以将数组转换为流,并使用java8的流特性。

@Test

公共语音至流(

arrays.stream(array ).foreach (s-system.out.println ) );

}

平行前缀

这类似于spark的reduceByKey。 也就是说,它根据传入的方法一次计算。

@Test

公共语音并行前缀(

Arrays.parallelprefix(ints,(x,y )-(xy );

系统. out.println (arrays.deep tostring (ints ) ); //[ 5,6,10,13,15 ]

}

平行安装

此方法相当于stream.map按元素遍历执行方法

@Test

公共语音并行安装(

Arrays.Parallelsetall(ints,x-x*x );

系统. out.println (arrays.tostring (ints ) ); //[ 0,1,4,9,16 ]

}

设置全部

这个方法和上面相似,但不是并行的

@Test

公共语音集所有

Arrays.setall(ints,x-x*2);

系统. out.println (arrays.tostring (ints ) );

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。