项目里用到了一些数组排序,求和的方法,总算是有点自己的成果,不用总算COPY别人的过来了。
public class MyTools {
/**
* 字符串转换成整型数组
* @param str String
* @return result int[]
*/
public int[] stringToIntArray(String str){
int[] result = new int[str.length()-1];
for(int i=0;i<str.split(",").length;i++){
result[i] = Integer.valueOf(str.split(",")[i].toString());
}
return result;
}
/**
* 字符串数组转换成用“--”连接的字符串
* @param str String[]
* @return result String
*/
public String strArrayToString(String[] array){
String str = "--";
String result = new String();
if(array!=null&&array.length>0){
result = java.util.Arrays.toString(array);
result = result.substring(1,result.length()-1);
}
result = str+ result.replace(", ", "--");
return result;
}
/**
* 整型数组转换成用“--”连接的字符串
* @param array int[]
* @return result String
*/
public String arrayToString(int[] array){
String str = "--";
String result = "";
if(array!=null&&array.length>0){
result = java.util.Arrays.toString(array);
result = result.substring(1,result.length()-1);
result = str+ result.replace(", ", "--");
}
return result;
}
/**
* 数组元素求和
* @param array int[]
* @return result int
*/
public int addNumbers(int[] array){
int result = 0;
if(array!=null&&array.length>0){
for(int i=0;i< array.length;i++){
result = result+array[i];
}
}
return result;
}
/**
* 去除字符串数组中重复元素
* @param array String[]
* @return result String[]
*/
public String[] getDistinctStr(String[] array){
ArrayList list=new ArrayList();
for(int i=0;i<array.length;i++) {
if(!list.contains(array[i])) {
list.add(array[i]);
}
}
String[] result=new String[list.size()];
for(int i=0;i<result.length;i++){
result[i] = (String)list.get(i);
}
return result;
}
/**
* 数组排序并且取前topNum项返回
* @param array int[]
* @param topNum int
* @return result int[]
*/
public int[] arraySort(int[] array,int topNum){
ArrayList list=new ArrayList();
Arrays.sort(array);
for(int i=array.length-1;i>=array.length-topNum;i--){
list.add(array[i]);
}
int[] result=new int[list.size()];
for(int i=0;i<list.size();i++){
result[i] = Integer.valueOf(list.get(i).toString());
}
return result;
}
/**
* 字符串数组取前topNum项返回
* @param array String[]
* @param topNum int
* @return result String[]
*/
public String[] topStrArray(String[] array,int topNum){
ArrayList list=new ArrayList();
if (topNum >array.length){
topNum = array.length;
}
for(int i=0;i<topNum;i++){
list.add(array[i]);
}
String[] result=new String[list.size()];
for(int i=0;i<list.size();i++){
result[i] = list.get(i).toString();
}
return result;
}
/**
* LinkedHashMap排序并且取前topNum项返回
* @param topMap LinkedHashMap<String, Integer>
* @param topNum int
* @return resultStrArray String[]
*/
public String[] MapSort(LinkedHashMap<String, Integer> topMap,int topNum){
LinkedHashMap<String, Integer> result = new LinkedHashMap<String, Integer>();
int StrIndex = 0;
List<Map.Entry<String, Integer>> topMapList =
new ArrayList<Map.Entry<String, Integer>>(topMap.entrySet());
/**
* 排序
*/
Collections.sort(topMapList, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> topMapObj1,
Map.Entry<String, Integer> topMapObj2) {
return (topMapObj2.getValue() - topMapObj1.getValue());
}
});
if (topNum >topMap.size()){
topNum = topMap.size();
}
/**
* 将排序后结果放回一个新的LinkedHashMap中
*/
for (int i = 0; i<topNum; i++) {
result.put(topMapList.get(i).getKey(),topMapList.get(i).getValue());
}
String[] resultStrArray = new String[result.size()];
Iterator it = result.entrySet().iterator();
/**
* 将LinkedHashMap中的内容放到数组中
*/
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
resultStrArray[StrIndex] = entry.getKey().toString();
StrIndex++;
}
return resultStrArray;
}
}