日期时间转换到页面显示
两种方式:
1. OutputStream out = response.getOutputStream(); map.put("enterFromTime", sdf.format(itemData.getEnterFromTime()));// 入单时间
2. map.put("changeTime", DateUtil.formatDate(itemData.getChangeTime()));// 转单时间
第2种好。
日期加一天
高级搜索时会用到结束日期要加一天,以便得到符合的搜索结果
//日期加一天:
//结束时间
if(searchJSON.has("endTime")){
String endTime = (String)searchJSON.get("endTime");
if(!endTime.equals("")){
Date date = DateUtil.getDateFormat().parse(endTime);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, 1);
date = cal.getTime();
ItemSearchWrap.setEndTime(date);
}
}
java中string,integer转bigdecimal的例子
例子1,string 转BigDecimal
public class Test{
public static void main(String[] arg) {
String str1="2.30";
BigDecimal bd=new BigDecimal(str1);
System.out.println(bd);
}
}
直接new 就行了。
例子2,BigDecimal和String的相互转换
/*由数字字符串构造BigDecimal的方法
*设置BigDecimal的小数位数的方法
*/
import java.math.BigDecimal;
//数字字符串
String StrBd="1048576.1024";
//构造以字符串内容为值的BigDecimal类型的变量bd
BigDecimal bd=new BigDecimal(StrBd);
//设置小数位数,第一个变量是小数位数,第二个变量是取舍方法(四舍五入)
bd=bd.setScale(2, BigDecimal.ROUND_HALF_UP);
//转化为字符串输出
String OutString=bd.toString();
补充: Integer转BigDecimal
new BigDecimal(Integer.parseInt(findCcid.toString()))
java中类型转换String,list,int
1.String ->list
String[] arr = tpAssignMarkStr.split(",");
List<String> list = Arrays.asList(arr);
2.list->String
List<String> markList = tpAssignMarkFieldDao.getTpAssignDeptMarkField(null,paperId);
String markStr = StringUtils.join(markList, ",");//考虑到存储多个标志
String[] markString = markStr.split(",");
List<TpSampleDataBean> dataList = tsSampleTemplateBean.getTpSampleDataBeans();
List<String> sampleDataIds= new ArrayList<String>();//存放样本的数据list
for (TpSampleDataBean d : dataList) {
for (String str : markString) {
if (str.equals(d.getFieldChar1())) {// FieldChar1存的是标志
if (StringUtils.equals(d.getPaperId(), paperId)
&& StringUtils.equals(d.getComplianceId(),complianceId)) {
sampleDataIds.add(d.getId());
}
}
}
}
1.int->String
int i=12345;
String s="";
第一种方法:s=i+"";
第二种方法:s=String.valueOf(i);
第三种方法:String s = Integer.toString(i);
2.String->int
s="12345";
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
ps1:
第一种方法:s=i+”“; //会产生两个String对象 第二种方法:s=String.valueOf(i);
//直接使用String类的静态方法,只产生一个对象
第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new
Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象
Double, Float, Long 转成字串的方法大同小异.
java遍历Map对象
1.在for-each循环中使用entries来遍历
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
2.在for-each循环中遍历keys或values。
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
//遍历map中的键
for (Integer key : map.keySet()) {
System.out.println("Key = " + key);
}
//遍历map中的值
for (Integer value : map.values()) {
System.out.println("Value = " + value);
}
该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。
IDEA 编译时报错 “未结束的字符串文字”解决方法
这个问题就是编码的问题 UTF-8和GBK的混淆,采用如下方法:
1、在idea的Settings中,找到File Encodings,将IDE Encoding 改为UTF-8
2、更换idea下面的encodings.xml文件,恢复到最近一次设置
3、或者更改encodings.xml里面的配置,GBK和UTF-8统一一下
jdk map详解
Java 自带了各种 Map 类。这些 Map 类可归为三种类型:
1. 通用Map,用于在应用程序中管理映射,通常在 java.util 程序包中实现
HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap
2. 专用Map,通常我们不必亲自创建此类Map,而是通过某些其他类对其进行访问
java.util.jar.Attributes、javax.print.attribute.standard.PrinterStateReasons、java.security.Provider、java.awt.RenderingHints、javax.swing.UIDefaults
3. 一个用于帮助我们实现自己的Map类的抽象类
AbstractMap
类型区别
HashMap
最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 Null。非同步的。
TreeMap
能够把它保存的记录根据键(key)排序,默认是按升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。TreeMap不允许key的值为null。非同步的。
Hashtable
与 HashMap类似,不同的是:key和value的值均不允许为null;它支持线程的同步,即任一时刻只有一个线程能写Hashtable,因此也导致了Hashtale在写入时会比较慢。
LinkedHashMap
保存了记录的插入顺序,在用Iterator遍历LinkedHashMap时,先得到的记录肯定是先插入的.在遍历的时候会比HashMap慢。key和value均允许为空,非同步的。
最快的遍历方法:
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
System.out.println(entry.getKey() + " :" + entry.getValue());
}
//排序(按key排序):
Map<String, String> map = new HashMap<String, String>();
map.put("a", "c");
map.put("b", "b");
map.put("c", "a");
// 通过ArrayList构造函数把map.entrySet()转换成list
List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());
// 通过比较器实现比较排序
Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
public int compare(Map.Entry<String, String> mapping1, Map.Entry<String, String> mapping2) {
return mapping1.getKey().compareTo(mapping2.getKey());
}
});
for (Map.Entry<String, String> mapping : list) {
System.out.println(mapping.getKey() + " :" + mapping.getValue());
}
//按value排序
Map<String, String> map = new TreeMap<String, String>();
map.put("a", "c");
map.put("b", "b");
map.put("c", "a");
// 通过ArrayList构造函数把map.entrySet()转换成list
List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());
// 通过比较器实现比较排序
Collections.sort(list, new Comparator<Map.Entry<String, String>>() {
public int compare(Map.Entry<String, String> mapping1, Map.Entry<String, String> mapping2) {
return mapping1.getValue().compareTo(mapping2.getValue());
}
});
for (String key : map.keySet()) {
System.out.println(key + " :" + map.get(key));
}