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);

//类:成员内部类,静态内部类,匿名内部类,局部内部类(都还没有在任何一个地方看见过,方法里面定义类)

//这个接口或抽象类,我没有任何的子类
//用的很少
}
}

JAVA数组详解的更多相关文章

  1. java 数组详解

    from : http://blog.csdn.net/jionjionyoushen/article/details/6223006 1.关于数组的特点 1)在Java中,无论使用数组或集合,都有边 ...

  2. 【Java学习笔记之五】java数组详解

    数组 概念 同一种类型数据的集合.其实数组就是一个容器. 数组的好处 可以自动给数组中的元素从0开始编号,方便操作这些元素. 格式1: 元素类型[] 数组名 = new 元素类型[元素个数或数组长度] ...

  3. Java - 数组详解(图解数组的基本操作)

    目录 什么是数组 数组的定义和内存分配 数组的赋值和访问 数组的注意事项 数组的内存图解 数组的插入 数组的删除 数组的扩容 数组的反转 首先 什么是数组 数组是一组地址连续.长度固定的具有相同类型的 ...

  4. Java 数组详解 - 用法、遍历、排序、实用API

    数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标. 组成数组的各个变量称为数组的分量,也称为 ...

  5. Java基础之 数组详解

    前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...

  6. “全栈2019”Java第三十一章:二维数组和多维数组详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. “全栈2019”Java第三十章:数组详解(下篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  8. “全栈2019”Java第二十九章:数组详解(中篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. “全栈2019”Java第二十八章:数组详解(上篇)

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

随机推荐

  1. Hadoop集群搭建笔记

    1.安装虚拟机 VMware workstation CentOS 镜像 安装Linux虚拟机:(在Win7上) 1)安装VMwareWorkstations(可修改配置) 2)添加CentOS镜像( ...

  2. Servlet 简介

    1. 如下图 2. 每一个Servlent都必须实现Servlent接口. GenericServlet是个通用的.不特定于任何协议的Servlet, 它实现了Servlet接口,而Httpservl ...

  3. Windows10更改网络类型-公用-专用

    1.Get-NetConnectionProfile 2. Set-NetConnectionProfile -Name "未识别的网络" -NetworkCategory Pri ...

  4. 胡乱摸的NOIP2017游记和总结

    来自YZK的总结 本篇总结主要分成两部分:NOI Professional游记和平日的刷题训练. 今年的NOI Professional TG的难度在洛谷上标记为:二黄一绿三紫.恭喜NOIP今年全面脱 ...

  5. 【Spring学习笔记-MVC-16】Spring MVC之重定向-解决中文乱码

    概述 spring MVC框架controller间跳转,需重定向,主要有如下三种: 不带参数跳转:形如:http://localhost:8080/SpringMVCTest/test/myRedi ...

  6. bzoj3143 游走

    Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...

  7. DNS 解释 --- 解析域名给电脑,电脑只看得懂1.1.1.1.1 这些ip地址 所以要翻译给他

    把域名翻译成IP地址的软件称为域名系统,即DNS 当网络上的一台客户机需要访问某服务器上的资源时,客户机的用户只需要在浏览器中的地址文本框中输入该服务器的网址.就可以与该服务器进行连接,计算机的硬件只 ...

  8. Spring IOC - 控制反转(依赖注入) - 单例和多例

    Spring容器管理的bean在默认情况下是单例的,即一个bean只会创建一个对象,存在map中,之后无论获取多少次该bean,都返回同一个对象. Spring默认采用单例方式,减少了对象的创建,从而 ...

  9. 服务注册发现Eureka之三:Spring Cloud Ribbon实现客户端负载均衡(客户端负载均衡Ribbon之三:使用Ribbon实现客户端的均衡负载)

    在使用RestTemplate来消费spring boot的Restful服务示例中,我们提到,调用spring boot服务的时候,需要将服务的URL写死或者是写在配置文件中,但这两种方式,无论哪一 ...

  10. eterm和easyfare的官网地址

    里面有eterm下载和eterm文档资料 运价软件easyfare和easyfare的文档. https://www.eterm.com.cn/caci/eterm/index-cn.jsp http ...