1.创建一个字符串数组:{"one","two","three"}
然后将该数组转换为一个List集合
String[] arr = {"one","two","three"};
List<String> list = Arrays.asList(arr);
System.out.println(list);2.创建一个List集合,并存放10个随机数,然后排序该集合后输出
Random random = new Random();
List<Integer> list = new ArrayList<Integer>();
for(int i=0;i<10;i++){
list.add(random.nextInt(100));
}
System.out.println("list:"+list);
Collections.sort(list);
System.out.println("list:"+list);3.通过控制台输入3个日期(yyyy-MM-dd格式),然后转换为Date对象后存入
集合,然后对该集合排序后输出所有日期。
Scanner scanner = new Scanner(System.in);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<Date> list = new ArrayList<Date>();
for(int i=1;i<=3;i++){
System.out.println("请输入第"+i+"个日期:");
String line = scanner.nextLine();
Date date = sdf.parse(line);
list.add(date);
}
System.out.println(list);
Collections.sort(list);
System.out.println(list);4.要求用户输入若干员工信息,格式为:
name,age,gender,salary,hiredate;name,age,gender,salary,hiredate;....
例如:
张三,25,男,5000,2006-02-15;李四,26,女,6000,2007-12-24;...
然后将每个员工信息解析成Emp对象。并存入到一个集合中。
然后循环集合,输出每一个员工信息(输出使用toString返回的字符串)
然后输出每个员工的转正日期。
转正日期为:入职3个月的当周周五
List<Emp> list = new ArrayList<Emp>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Scanner scanner = new Scanner(System.in); System.out.println("请输入员工信息:"); String info = scanner.nextLine(); String[] empArr = info.split(";"); for(String data:empArr){ String[] empInfo = data.split(","); String name = empInfo[0]; int age = Integer.parseInt(empInfo[1]); String gender = empInfo[2]; int salary = Integer.parseInt(empInfo[3]); Date hiredate = sdf.parse(empInfo[4]); Emp e = new Emp(name, age, gender, salary, hiredate); list.add(e); } //输出员工信息 for(Emp e : list){ System.out.println(e); } //输出转正仪式日期 for(Emp e : list){ Calendar calendar = Calendar.getInstance(); calendar.setTime(e.getHiredate()); //入职3个月后的日期 calendar.add(Calendar.MONTH, 3); //设置为当周的周五 calendar.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY); System.out.println(e.getName()+"的转正仪式日期:"+sdf.format(calendar.getTime())); }
5。创建一个Map,保存某个学生的成绩:
*在控制台输入该学生成绩,格式:
*科目:成绩;科目:成绩;...
*例如:
*语文:99;数学:98;英语:97;物理:96;化学:95
*然后输出物理的成绩。
*然后将化学的成绩设置为96
*然后删除英语这一项。
*然后遍历该Map分别按照遍历key,Entry,value
*的形式输出该Map信息。
Map<String,Integer> map
= new HashMap<String,Integer>();
map.put("语文", 99);
map.put("数学", 98);
map.put("英语", 97);
map.put("物理", 96);
map.put("化学", 95);
//获取物理的成绩
Integer num = map.get("物理");
System.out.println("物理:"+num);
//设置化学成绩
map.put("化学",96);
//删除英语
map.remove("英语");
//遍历key
Set<String> keySet = map.keySet();
for(String key : keySet){
System.out.println("key:"+key);
}
//遍历Entry
Set<Entry<String,Integer>> entrySet = map.entrySet();
for(Entry<String,Integer> e : entrySet){
System.out.println(e.getKey()+":"+e.getValue());
}
//遍历values
Collection<Integer> values = map.values();
for(Integer value : values){
System.out.println("value:"+value);
}选做扩展题:
两个线程交叉打印数字1-50,打印效果如下
提示:需要每个线程打印5个数字以后释放对象锁,释放锁请参考Object类的wait()方法和notify()方法
Thread1-1
Thread1-2
Thread1-3
Thread1-4
Thread1-5
Thread2-6
Thread2-7
Thread2-8
Thread2-9
Thread2-10
Thread1-11
Thread1-12
Thread1-13
Thread1-14
Thread1-15
......
public static void main(String[] args) throws Exception{
AA a = new AA();
new Thread(a).start();
new Thread(a).start();}
class AA implements Runnable{
Object obj=new Object();
int num=1;
@Override
public void run() {
while(num<50) {
synchronized (obj) {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName()+" "+num++);
if(num==51) {
System.exit(0);
}
}
obj.notifyAll();
try {
obj.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}}

京公网安备 11010502036488号