package com.keke.demo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import com.sun.org.apache.xpath.internal.functions.Function;
public final class ListDemo {
final static public transient
int a = 100;
static int b = 100;
{
System.out.println("这里会执行吗?"+a +"==="+b);
}
public ListDemo(){
System.out.println("这里是构造方法执行的地方!");
}
public static void main(String[] args) throws ParseException {
new ListDemo();
//java.util.Collection jdk-api
//Collection 接口-----List接口 === Set接口
//List结合---ArrayList LinkedList Vector(ArrayList实现的原理都是一样的--线程安全的)//
//为什么会有集合?
//定义 数组你相当开辟一个长度为10的数组--一个动态数组
//集合条件元素是调用:add(object);
List<String> strings = new ArrayList<String>();//等价于String[] str = new String[10];
//jdk里面的ArrayList和Vectory他们是一个以1.5 * 10 + 1为扩展的动态数组 = 16--index--
strings.add("1");
strings.add("2");
strings.add("3");
strings.add("4");
strings.add("5");
strings.add("6");
strings.add("7");
strings.add("8");
strings.add("9");
strings.add("10");
strings.add("11");//添加到这一行的时候:数组的长度就变成:16
//泛型=--数据类型范围的置顶
LinkedList<String> linkedList = new LinkedList<String>();//他是数组吗?
linkedList.add("1");
linkedList.add("2");
linkedList.add("3");
linkedList.add("4");
linkedList.add("5");
linkedList.add("6");
linkedList.add("7");
linkedList.add("8");
linkedList.add("lucky");
linkedList.add("10");
//获取元素的第一个值
System.out.println("linked集合的长度是:"+linkedList.get(0));
int length = linkedList.size();
System.out.println("linked集合的长度是:"+length);
System.out.println("linked集合的最后一个元素的值是:"+linkedList.get(length-1));
//linkedList.remove(9);
linkedList.remove("lucky");//这个是根据元素值去删除
length = linkedList.size();
System.out.println("linked集合的最后一个元素的值是:"+linkedList.get(length-1));
System.out.println("linked集合的长度是:"+length);
System.out.println("==================Set==============");
//List :有序,而且允许有重复值
//Set:一个无序,并且不允许有重复值
Set<Integer> set = new HashSet<Integer>();
// set.add(1);
// set.add(2);
// set.add(2);
// set.add(1);
// set.add(3);
// for (Integer integer : set) {
// System.out.println(integer);
// }
// for (int i = 1; i <= 1000; i++) {
// set.add(i);
// }
//
// for (Integer integer : set) {
// System.out.println(integer);
// }
//Set<Integer> set2 = new LinkedHashSet<Integer>();//他就相当于去重的arryList
// Set<Integer> set2 = new TreeSet<Integer>(new MyComparator(false));//去重的并且排序,从小到大的排序器
// set2.add(1);
// set2.add(2);
// set2.add(2);
// set2.add(10);
// set2.add(10);
// set2.add(30);
// set2.add(13);
// set2.add(23);
// set2.add(443);
// set2.add(355);
// set2.add(13);
// set2.add(23);
// set2.add(53);
// set2.add(73);
// set2.add(39);
// set2.add(13);
// for (Integer integer : set2) {
// System.out.println(integer);
// }
Set<Date> dateSet = new TreeSet<Date>(new DateComparator(true));
dateSet.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-12-01 12:12:12"));
dateSet.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-12-02 12:12:12"));
dateSet.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-12-03 12:12:12"));
dateSet.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-12-04 12:12:12"));
dateSet.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-12-05 12:12:12"));
dateSet.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-12-06 12:12:12"));
dateSet.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-12-07 12:12:12"));
dateSet.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-12-08 12:12:12"));
dateSet.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-12-09 12:12:12"));
for (Date date : dateSet) {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
}
// //获取元素的第一值
// System.out.println("集合的第一个元素是:"+strings.get(0));
// //获取元素的最后一个值
// int length = strings.size();
// System.out.println("集合的长度是:"+length);
// System.out.println("集合的最后一个元素是:"+strings.get(length-1));
// strings.set(0, "1000");//修改
// System.out.println("集合的第一个元素是:"+strings.get(0));
// strings.remove(5);//根据下标去删除集合的元素
// strings.set(0, null);
// strings.set(2, null);
// strings.add(null);
// //用for取值
// System.out.println("======第一种foreach循环");
// for (String string : strings) {
// System.out.println(string);
// }
//
// System.out.println("======第三种Iterator循环");
// Iterator<String> iterator = strings.iterator();
// while(iterator.hasNext()){
// System.out.println(iterator.next());
// }
// System.out.println("======第二种for循环");
System.out.println("==============日期===========");
Date date = new Date();//java.util.Date--1970年
//String format = "yyyy-MM-dd HH:mm:ss";//这种格式是固定不变的 24小时制
//String format = "yyyy-MM-dd hh:mm:ss";//这种格式是固定不变的 12小时制
//String format = "yyyy年MM月dd日 hh时mm分ss秒";//这种格式是固定不变的 12小时制
//String format = "MM月yyyy年dd日 hh时mm分ss秒";//这种格式是固定不变的 12小时制
//String format = "MM月yyyy年dd日";//这种格式是固定不变的 12小时制
//String format = "HH:mm:ss E";//这种格式是固定不变的 12小时制
// String format = "yy-M-d H:m:s E w";//这种格式是固定不变的 24小时制
// System.out.println(new SimpleDateFormat(format).format(date));
//
// String dateString = "2014/12/12 12:12:12";
// Date date2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").parse(dateString);
// System.out.println(date2);
//类:成员内部类,静态内部类,匿名内部类,局部内部类(都还没有在任何一个地方看见过,方法里面定义类)
//这个接口或抽象类,我没有任何的子类
//用的很少
}
}