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. POJ1179 Polygon

    题目:http://poj.org/problem?id=1179 石子合并的升级版.有负值.但运算符只有 + 和 * . 考虑负值对原做法正确性的影响:之所以仅记录最大值可能不对,是因为有可能负数 ...

  2. C# 正则表达式 判断各种字符串(如手机号)

    using System; using System.Text.RegularExpressions; namespace MetarCommonSupport { /// <summary&g ...

  3. 【appium】根据xpath定位元素

    1. 背景 本文尝试使用的试验对象是SDK自带的NotePad应用实例,假设已经有两个Notes分别是“note1”和“note2”添加到Notepad上面,我们要做的就是尝试用xpath的方法来定位 ...

  4. sikuli 安装

    1     简介 官方介绍: Sikuli脚本自动化,你在屏幕上看到的任何东西.它使用图像识别,识别和控制GUI组件.这是有用的,当有一个GUI的内部或源代码的访问是不容易的. Sikuli(在墨西哥 ...

  5. Logstash之四:logstash接收kafka数据

    3.kafka+logstash整合logstash1.5以后已经集成了对kafka的支持扩展,可以在conf配置中直接使用 vim /etc/logstash/conf.d/pay.conf inp ...

  6. android官方文档翻译(不断更新中。。。)

    最近在自学android,抽空把官方文档的guide跟training差不多看了一遍,又对比了一些书籍,感觉还是官方文档讲得比较好,所以自己计划把官方文档翻译一下,方便自己的知识巩固以及复习查找,由于 ...

  7. 解决npm下载包失败的问题

    在我朝,用npm直接从官方的镜像下载包,经常会出现网络超时下载失败的问题,具体原因大家都懂,我就不说了. 不过,这些都无法阻挡我们对知识的渴望,一下提供几种我在工作中的解决办法,希望能帮助你. 1.安 ...

  8. 不设目标也能通关「马里奥」的AI算法,全靠好奇心学习

    在强化学习中,设计密集.定义良好的外部奖励是很困难的,并且通常不可扩展.通常增加内部奖励可以作为对此限制的补偿,OpenAI.CMU 在本研究中更近一步,提出了完全靠内部奖励即好奇心来训练智能体的方法 ...

  9. ORM介绍(字段 和 字段的参数)

    ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述 ...

  10. node使用MySQL数据库

    内容: 1.node连接数据库 2.数据库常用操作 3.数据库实例 - 用户注册.登陆 1.node连接数据库 (1)下载mysql模块 (2)使用mysql模块连接数据库 let db=mysql. ...