集合补充 数字日期字符串格式化 第五讲091205A

xiaoxiao2025-02-11  23

1)Date(*,*,*)构造方法已经不推荐使用。 2)Calendar是抽象类,需要getInstance()去引用。 3)可以认为c为一个显示日期时间等信息的数组,Calendar.MONTH为一个在c数组显示月份的数组下标,(11表示12月,0表示1月份) 4)浏览器建议改c.MONTH为Calendar.MONTH,因为这个是常量了。 TestDate.java import java.util.Calendar;import java.util.Date;public class TestDate { public static void main(String[] args) { Date a = new Date(80, 7, 1); //(1) Date b = new Date(); System.out.println((b.getTime() - a.getTime()) / 1000 / 60 / 60 / 24/ 365); Calendar c = Calendar.getInstance();//(2) System.out.println(c.get(Calendar.MONTH)); //(3) System.out.println(c.MONTH); //(4) c.set(c.MONTH,4); System.out.println(c); }} 输出: 29 11 2 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1, minimalDaysInFirstWeek=1,ERA=1,YEAR=2009,[b]MONTH=4[/b],WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH=7, DAY_OF_YEAR=341,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=16, SECOND=23,MILLISECOND=203,ZONE_OFFSET=28800000,DST_OFFSET=0] ---------------------------------------------------------------------- 1)字符串格式化时候,“%2$-10s”,其中2表示第二个元素,-10负数表示向左对齐10个长度。 2)fmt2.format 推荐改为String.format TestFormat.java 日期格式化,数字格式化,字符串格式化 import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.Date;public class TestFormat { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date d = new Date(); System.out.println(sdf.format(d)); double num = 111123.4567; DecimalFormat df1 = new DecimalFormat("###.00KM"); System.out.println(df1.format(num)); String fmt1 = "%1$10s"; String fmt2 = "%1$-10s%2$-10s";//(1) String[] txt = { "hello", "aaaaa" }; System.out.println(String.format(fmt1, "hello")); System.out.println(fmt2.format(fmt2, txt)); //(2) System.out.println(fmt2.format("%1$-10s%2$-10s", "a", "b")); }} 输出: 2009年12月07日 23:35:03 111123.46KM hello hello aaaaa a b ---------------------------------------------------------------------- 1) 定义为父类Collection,有利于重用 2) coll1与coll2求交集,并把结果赋给coll2。coll2中的数据若发生变化,返回false 3)每次new的person是哈希码值是不同的,所以,a中添加两个person。可以在Person中重写hashcode方法。 4)迭代器使用例子,相当于for in循环。iterator.hasNext();iterator.next();两个常见方法 TestCollection 多种集合使用举例 import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class TestArrayList { public static void main(String[] args) { ArrayList<String> ar = new ArrayList<String>(); ar.add("111"); ar.add("222"); ar.add("333"); System.out.println(ar); System.out.println(ar.size()); ArrayList<Person> a2 = new ArrayList<Person>(); a2.add(new Person("tom", 24)); a2.add(new Person("alex", 34)); System.out.println(a2); HashMap<String, Person> hm = new HashMap<String, Person>(); hm.put("zg", new Person("曾轶可", 18)); hm.put("cg", new Person("李宇春", 16)); Person x = hm.get("zg"); System.out.println(x); System.out.println(hm); Collection<String> coll1 = new ArrayList<String>();//(1) Collection<String> coll2 = new ArrayList<String>(); coll1.add("a"); coll1.add("b"); coll1.add("c"); coll2.add("b"); coll2.add("c"); coll2.add("d"); System.out.println(coll2.retainAll(coll1)); //(2) System.out.println("coll2 = "+coll2); Set<Object> a = new HashSet<Object>(); a.add(new Person("q", 123));//(3) a.add(new Person("q", 123)); a.add(123); a.add(123); a.add("222"); a.add("222"); System.out.println(a); Set<String> s = new HashSet<String>(); s.add("ddd"); s.add("www"); s.add("qqq"); String string; Iterator<String> it = s.iterator();//(4) while (it.hasNext()) { string = it.next(); System.out.println(string); } }} 输出: [111, 222, 333] 3 [tom|24, alex|34] 曾轶可|18 {zg=曾轶可|18, cg=李宇春|16} false coll2 = [b] [222, q|123, q|123, 123] qqq ddd www ---------------------------------------------------------------------- 购书小程序,有4类书可供选择。 有三个类文件(Book,BookItem,BookCar),通过相互调用实现。 Book.java Book类,只含三个属性 public class Book { String id; String name; int price; public Book(String id, String name, int price) { super(); this.id = id; this.name = name; this.price = price; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; }} BookItem.java BookItem类,含一个BOOK属性和一个购买数量的属性 public class BookItem { Book bk; int count; public BookItem(Book bk, int count) { super(); this.bk = bk; this.count = count; } public Book getBk() { return bk; } public void setBk(Book bk) { this.bk = bk; } public int getCount() { return count; } public void setCount(int count) { this.count = count; }} BookCar.java import java.util.*;public class BookCar { public static void main(String[] args) { String id; BookItem bi = null; Set<String> ids = null; Map<String, BookItem> car = new HashMap<String, BookItem>(); while (true) { System.out.println(""); //System.out.println(ids); System.out.println("输入要买的书101,102,103,104"); Scanner s = new Scanner(System.in); String data = s.next(); if (data.equals("q")) break; id = data; ids = car.keySet(); if (ids.contains(id)) { bi = car.get(id); bi.setCount(bi.getCount() + 1); } else { Book book = null; if (id.equals("101")) book = new Book("101", "java1", 15); else if (id.equals("102")) book = new Book("102", "java2", 25); else if (id.equals("103")) book = new Book("103", "java3", 45); else if (id.equals("104")) book = new Book("104", "java4", 40); car.put(id, new BookItem(book, 1)); } } System.out.println("购书清单如下"); for (String it : ids) { BookItem bi1 = car.get(it); System.out.println(String.format("%1$-10s%2$-10s%3$-10s%4$-10s", bi1.getBk().getId(), bi1.getBk().getName(), bi1.getBk() .getPrice(), bi1.getCount())); } }} 输出: 输入要买的书101,102,103,104 101 输入要买的书101,102,103,104 102 输入要买的书101,102,103,104 103 输入要买的书101,102,103,104 102 输入要买的书101,102,103,104 q 购书清单如下 103 java3 45 1 102 java2 25 2 101 java1 15 1 ---------------------------------------------------------------------- 1)泛型也可以这样定义--用变量表示 Pair.java 特殊的泛型使用方法 public class Pair<A, B> {;//(1) A k; B v; public Pair(A k, B v) { super(); this.k = k; this.v = v; } public A getK() { return k; } public void setK(A k) { this.k = k; } public B getV() { return v; } public void setV(B v) { this.v = v; } @Override public String toString() { return k+"@"+v; }} PairTest.java public class PairTest { public static void main(String[] args) { Pair<Integer, String> pr = new Pair<Integer, String>(1, "北京");//(1) Pair<String, Person> ps = new Pair<String, Person>("汉族", new Person("李宇春", 1)); //(1) System.out.println(pr); System.out.println(ps); }} 输出: 1@北京 汉族@李宇春|1
转载请注明原文地址: https://www.6miu.com/read-5024532.html

最新回复(0)