java中arrays
⑴ java语言里的Arrays有没有缩写
import java.util.*;
import java.util.*;
这样写简洁,但是编译速度慢,而且还容易混淆,不建议。
⑵ java中用Arrays sort()如何将字符串倒序排列如,将"abcdefg"排序为"gfedcba".
java中用arrays sort()方法将abcdefg倒序,可以先试用java的comparable接口先进行比较,然后排序,实例如下:
packagetest;
importjava.util.Arrays;
importjava.util.Comparator;
publicclassArraysort{
publicstaticvoidmain(String[]args){
Strings="a,b,c,d,e,f,g";
String[]strArr=s.split(",");
Arrays.sort(strArr,newcom());//排序
for(Stringstr:strArr){
System.out.print(str+",");
}
}
}
classcom<T>implementsComparator<T>{//对abcdefg进行比较大小,排序
publicintcompare(To1,To2){
inti=Integer.parseInt(String.valueOf(o1));
intj=Integer.parseInt(String.valueOf(o2));
if(i>j)return1;
if(i<j)return-1;
return0;
}
}
⑶ Java当中的Array和Arrays的区别到底是什么
是两个不同的类,Arrays貌似是个处理数组的工具类,至于Array真心没用过,不过Array在reflect和sql包里面有各有一个,前者应该是和反射有关,后者应该是和数据库有关
⑷ JAVA中Arrays.sort()排序的原理是什么
有的时候需要对数组里的element进行排序。当然可以自己编写合适的排序方法,但既然java包里有自带的Arrays.sort排序方法,在 数组元素比较少的时候为何不用?
Sorting an Array 1. 数字排序 int[] intArray = new int[] { 4, 1, 3, -23 };
Arrays.sort(intArray);
输出: [-23, 1, 3, 4]
2. 字符串排序,先大写后小写 String[] strArray = new String[] { "z", "a", "C" };
Arrays.sort(strArray);
输出: [C, a, z]
3. 严格按字母表顺序排序,也就是忽略大小写排序 Case-insensitive sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
输出: [a, C, z]
4. 反向排序, Reverse-order sort
Arrays.sort(strArray, Collections.reverseOrder());
输出:[z, a, C]
5. 忽略大小写反向排序 Case-insensitive reverse-order sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(strArray));
输出: [z, C, a]
java初学者最常见的错误思想,就是试图去写一些方法来完成数组的排序功能,其实,数组排序功能,在java的api里面早已实现,我们没有 必要去重复制造轮子。
Arrays类有一个静态方法sort,利用这个方法我们可以传入我们要排序的数组进去排序,因为我们传入的是一个数组的引用,所以排序完成的 结果也通过这个引用的来更改数组.对于整数、字符串排序,jdk提供了默认的实现,如果要对一个对象数组排序,则要自己实现 java.util.Comparator接口。
packagecom.gjh.gee.arrays;
importjava.util.Arrays;
publicclassArraySortDemo{
publicvoidsortIntArray(){
int[]arrayToSort=newint[]{48,5,89,80,81,23,45,16,2};
System.out.println("排序前");
for(inti=0;i<arrayToSort.length;i++)
System.out.println(arrayToSort[i]);
//调用数组的静态排序方法sort
Arrays.sort(arrayToSort);
System.out.println("排序后");
for(inti=0;i<arrayToSort.length;i++)
System.out.println(arrayToSort[i]);
}
publicvoidsortStringArray(){
String[]arrayToSort=newString[]{"Oscar","Charlie","Ryan",
"Adam","David"};
System.out.println("排序前");
for(inti=0;i<arrayToSort.length;i++)
System.out.println(arrayToSort[i]);
System.out.println("排序后");
//调用数组的静态排序方法sort
Arrays.sort(arrayToSort);
for(inti=0;i<arrayToSort.length;i++)
System.out.println(arrayToSort[i]);
}
publicvoidsortObjectArray(){
Dogo1=newDog("dog1",1);
Dogo2=newDog("dog2",4);
Dogo3=newDog("dog3",5);
Dogo4=newDog("dog4",2);
Dogo5=newDog("dog5",3);
Dog[]dogs=newDog[]{o1,o2,o3,o4,o5};
System.out.println("排序前");
for(inti=0;i<dogs.length;i++){
Dogdog=dogs[i];
System.out.println(dog.getName());
}
Arrays.sort(dogs,newByWeightComparator());
System.out.println("排序后:");
for(inti=0;i<dogs.length;i++){
Dogdog=dogs[i];
System.out.println(dog.getName());
}
}
publicstaticvoidmain(String[]args){
ArraySortDemot=newArraySortDemo();
t.sortIntArray();
t.sortStringArray();
t.sortObjectArray();
}
}
⑸ java arrays问题
升序、还是降序,由这方法决定
public int compare(VLA2 a , VLA2 b){
return b.dishSize - a.dishSize;
}
⑹ java中的Array和Arrays两个类什么区别Collection和Collections什么区别
这个啊
Array类主要提供了动态创建和访问 Java 数组的方法。
Arrays包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
Collection是个java.util下的接口,它是各种集合结构的父接口 继承与他的接口主要有Set 和List.
⑺ 数组的英文单词是Array,为什么Java中喜欢用Arrays来表示数组,这有什么原因吗
没人用Arrays来代表数组,在Java中Arrays代表的是“数组操作类”。
同样Collection代表集合,Collections代表“集合操作类”。
在Arrays中有许多操作数组的实用方法,如排序,填充,输出,拷贝,二分查找,相等比较等。
⑻ java的Arrays类问题
可以使用StringUtils的join方法,最后得出的结果没有【】,也没有逗号。
Arrays. tostring方法源码如下,会自动加上【】和逗号
⑼ java中arrays的用法
如果你问的是API的话,要注意,Java中是区分大小写的,不存在arrays这么个类,而是Arrays,
并且全称是java.util.Arrays,其文档可在 http://download.oracle.com/javase/6/docs/api/ 参考,搜索Arrays你就找到了,不要惧怕英文,耐心看一下就搞明白了。
如果是问的数组(array),那么:
第一,在Java中,数组是一种专门的类型,它是有序数据的集合,数组中的每个元素的数据类型都是相同的。
第二,对元素的确定是由数组名和它的下标实现的,这是和C/C++中的一样的,比如a[0]代表数组a的第一个元素,a[1]代表数组a的第二个元素,依次类推。
第三,得说说数组的声明方法,Java的数组声明采用与C语言类似, 数组可分为一维数组和多维数组。声明形式为: type arrayName [] [[]...]; 或:type [] [[]...] arrayName; 后边这种方式是Java比较独特的地方, 体现了Java的纯面向对象的特征。
第四,Java数组声明中,不需要指明数组大小,这是因为数组声明并未为数组元素分配存储单元,要为数组元素分配存储单元,必须显示使用new运算符实现,这里就和C/C++有很大不同了。格式是: arrayName[][[]...] = new type [Size1][[Size2]...];
第五,声明数组与为数组分配存储单元两部分,可以合在一起;上面举例的就是和在一起的形式。如果要分开,就是写两成两句:int numbers[]; numbers = new int[10]; 这看起来和C++很相似。
第六,对已经分配了存储空间的数组(由new运算符实现),就可以对数组中的每一个元素引用。下标是放在数组名后面[]中的,通过对下标的操作来引用元素。我们可以赋值给元素,也可以使用元素的值,主要下标是从0开始的。
第七,Java中,对于每一个数组,都有一个属性length,来指明数组的长度,这对于写程序就很方便了。int count[] = new int [10]; 包括count[0] count[1] ... count[9] 那么 count.length = 10
第八,在声明数组时,也可以同时对数组进行初始化。它的一维形式如下:
type arrayName[] = {Value1, Value2, ... , ValueN};
例如:
float myf[] = {1,2,3,4,5,6}
int myint[][]={{1,2,3},{4,5,6}};
//int myint[][]=new myint[2][3];
与C或C++语言不一样,Java对数组元素的下标要进行越界检查,以确保数据的安全。
记住这8条,我相信你对数组就基本都掌握了。
好了,希望对你有所帮助,有问题随时联系我:)