1 按list中的对象中的某个值的大小就行排序
2 转百分比的方法:
package com.pengjunlee.hive.lianxi;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import com.alibaba.fastjson.JSONObject;
import com.pengjunlee.hive.controller.Result;
public class lianxi {
public static void main(String[] args) {
int num0=23,num1=56,num2=1,num3=0;
int num=num0+num1+num2+num3;
List<Result> dataList = new ArrayList<Result>();
Result result0 =new Result("蓝牙开门","a",num0);
Result result1=new Result("远程开门","b",num1);
Result result2=new Result("密码开门","b",num2);
dataList.add(result0);
dataList.add(result1);
dataList.add(result2);
Collections.sort(dataList, new Comparator<Result>(){
/*
* int compare(Person p1, Person p2) 返回一个基本类型的整型,
* 返回负数表示:p1 小于p2,
* 返回0 表示:p1和p2相等,
* 返回正数表示:p1大于p2
*/
public int compare(Result p1, Result p2) {
//按照Person的年龄进行升序排列
if(p1.getNum() > p2.getNum()){
return 1;
}
if(p1.getNum() == p2.getNum()){
return 0;
}
return -1;
}
});
System.out.println("排序后的结果:"+JSONObject.toJSONString(dataList));
// 创建一个数值格式化对象
NumberFormat numberFormat = NumberFormat.getInstance();
// 设置精确到小数点后2位
numberFormat.setMaximumFractionDigits(2);
System.err.println(numberFormat.format((float) num0 / (float) num * 100)+"%");
int a = 7;
int b = 9;
// 创建一个数值格式化对象
NumberFormat numberFormat1 = NumberFormat.getInstance();
// 设置精确到小数点后2位
numberFormat1.setMaximumFractionDigits(2);
String result = numberFormat1.format((float) a / (float) b * 100);
System.out.println("num1和num2的百分比为:" + result + "%");
}
}
3list: 和数组
前台数据要返回{20,30,10,45,20,10,30}; 可以通过数组还可以通过list ,list可以追加数据,但数组固定个数
===========================
Integer[] arr=new arr[7];
for(int i=0;i<arr.length;i++){
System.out.println("一维数组:for:"+str[i]);
}
// 增强for形式 s遍历所有数组 for(String s:str){ System.out.println("一维数组增强:for:"+s); }
===================
List<String> list = new ArrayList<String>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); 方法一: 超级for循环遍历 for(String attribute : list) { System.out.println(attribute); } 方法二: 对于ArrayList来说速度比较快, 用for循环, 以size为条件遍历: for(int i = 0 ; i < list.size() ; i++) { system.out.println(list.get(i)); } 方法三: 集合类的通用遍历方式, 从很早的版本就有, 用迭代器迭代 Iterator it = list.iterator(); while(it.hasNext()) { System.ou.println(it.next); }
追加方法: list.add(a); //在后边追加
list .set( 1, a); //在指定位置追加
倒序:
Collections.reverse(dataList);
找最大值:
list = {20,30,10,45,20,10,30}
int max= Collections.max(arrList);
=====================================
转json
引依赖包: fastjson
System.out.println(JSON.toJSONString(arrList));
=================================
//Integer arr[]={20,30,10,45,20,10,30};
int max = (int) Collections.max(Arrays.asList(arr));
int length=String.valueOf(max).length();
String str="1";
DecimalFormat g2=new DecimalFormat("0.000000");
String endZeroStr = g2.format(Integer.valueOf(str));
int parent=Integer.parseInt(endZeroStr.replace(".","").substring(0,length));
Map<String,Object> dataMap = new HashMap<>();
Integer count =max%parent+max;
dataMap.put("arr",arr);
dataMap.put("max",count)
===========================
封装json格式:
list中放对象()
list中方map
==============================
int -> String
int i=12345;
String s="";
第一种方法:s=i+"";
第二种方法:s=String.valueOf(i);
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
String -> int
s="12345";
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
以下是答案:
第一种方法:s=i+""; //会产生两个String对象 第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常 |
--------------------------------------------------------------------
1如何将字串 String 转换成整数 int?
A. 有两个方法:
1). int i = Integer.parseInt([String]); 或
i = Integer.parseInt([String],[int radix]);
2). int i = Integer.valueOf(my_str).intValue();
注: 字串转成 Double, Float, Long 的方法大同小异.
2 如何将整数 int 转换成字串 String ?
A. 有叁种方法:
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = "" + i;
注: Double, Float, Long 转成字串的方法大同小异.
http://blog.sina.com.cn/s/blog_4f9d6b1001000bfo.html
=======================================