① java数组中重复数据的删除
java数组中去掉重复数据可以使用set集合,set本身内部是不保存重复的数据的,如下代码:
importjava.util.Arrays;
importjava.util.Set;
importjava.util.TreeSet;
publicclassceshi{
publicstaticvoidmain(String[]args){
int[]testArr={5,5,1,2,3,6,-7,8,6,45,5};//新建一个int类型数组
System.out.println(Arrays.toString(testArr));
Set<Integer>set=newTreeSet<Integer>();//新建一个set集合
for(inti:testArr){
set.add(i);
}
Integer[]arr2=set.toArray(newInteger[0]);
//数组的包装类型不能转只能自己转;吧Integer转为为int数组;
int[]result=newint[arr2.length];
for(inti=0;i<result.length;i++){
result[i]=arr2[i];
}
System.out.println(Arrays.toString(arr2));
}
}
运行结果如下:
② Java中Set、List、Map集合类(接口)的特点及区别。分别有哪些常用实现类。
Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变;
List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变;
Map:适合储存键值对的数据。
③ java怎样随机选取一个集合里面的数
java中随机选取一个集合里面的数方法:
很简单,list.get((int)(Math.Random()*list.size()));
2、集合是Set的话:
Object[] obj =set.toArray();
obj[(int)(Math.Random()*obj.length)]
④ 看看java中map按value 降序的方法!!!
public static Map.Entry[] getSortedHashtableByValue(Map h) {
Set set = h.entrySet();
Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set.size()]);
Arrays.sort(entries, new Comparator() {
public int compare(Object arg0, Object arg1) {
Double key1 = Double.valueOf(((Map.Entry) arg0).getValue()
.toString());
Double key2 = Double.valueOf(((Map.Entry) arg1).getValue()
.toString());
if (key1 < key2)
return 1; // Neither val is NaN, thisVal is smaller
if (key1 > key2)
return -1; // Neither val is NaN, thisVal is larger
long thisBits = Double.doubleToLongBits(key1);
long anotherBits = Double.doubleToLongBits(key2);
return (thisBits == anotherBits ? 0 : // Values are equal
(thisBits < anotherBits ? 1 : // (-0.0, 0.0) or (!, NaN)
-1)); // (0.0, -0.0) or (NaN, !NaN)
}
});
return entries;
}
⑤ java中怎么样子找出数组中重复的数,并去除
使用Set集合处理即可,因为Set集合有特性,自动去除重复的元素;
只要循环数组,添加到set中就可以实现了。