package com.itcast.test20140113;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set; public class MainDemo { public static void main(String[] args) {
// Map集合使用
//MapUser(); /*
* 泛型 运行时,会将泛型去掉,生成的class文件中是不带泛型的,这个称为泛型的擦除 为什么擦除呢?是为了兼容运行的类加载器。 泛型限定 ?
* extends E 接收E类型或者E的子类型对象。上限,存储元素的时候使用上限 ? super E
* 接收E类型或者E的父类型。下限,获取元素的时候使用下限 public void printCollection(Collection<?
* extends Person> collection) 通配符 public void
* printCollection(Collection<?> collection)
*/ // 集合框架工具类使用
CollectionUtilUser(); /*
* Arrays.toString(array);//数组toString[2,3,4]
*/
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
System.out.println(stooges);// [Larry, Moe, Curly] /*
* 如果数组中的元素是对象,那么转成集合时,直接将 数组中的元素 作为集合中的元素存储
* 如果数组中的元素是基本类型数组,那么会将该 数组 作为集合中的元素进行存储
*/
int[] array = { , , };
List<int[]> list = Arrays.asList(array);//将数组进行集合存储
System.out.println(list);// [[I@4aa0b07b]
Integer [] array1 = { , , };
List<Integer> integers = Arrays.asList(array1);//将数组中的元素进行集合存储
System.out.println(integers);// [1, 3, 4] Integer [] integers2 = integers.toArray(new Integer[integers.size()]);//集合转换为数组
System.out.println(Arrays.toString(integers2)); //可变参数
// public static String Params(int... params){
// return Arrays.toString(params);
// }
// System.out.println(Params(1,2,3));//int... 就是int[] } /**
* 集合框架工具类使用
*/
public static void CollectionUtilUser() {
/*
* Collections.sort(list);排序
* Collections.sort(list,CompareByStringLength);自定义对象 实现Comparator接口进行比较
* Collections.binarySearch(list, key)//折半查找,要先排序,然后再查询,查询list集合中值为key的索引,找不到返回负数
* Collections.max(list);//集合中最大值
* Collections.reverse(list);//反转集合
* Collections.replaceAll(list, oldVal, newVal);
* Collections.shuffle(list);//随机集合中的元素顺序
* Collections.synchronizedCollection(collection);将非同步集合转为同步集合
* Collections.synchronizedList(list);
* Collections.synchronizedMap(m);
* Collections.synchronizedSet(s);
*/
} /**
* Map集合使用
*/
public static void MapUser() {
/*
* Map集合中存储的就是键值对 常用方法: value
* put(key,value)存储value,返回前一个和key关联的值,如果没有相同的key,返回null void clear()
* value remove(key) boolean containsKey(key) boolean
* containsValue(value) boolean isEmpty() value
* get(key)通过键获取值,如果没有改键,返回null int size()
*/ /*
* 根据键获取值
*/
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(, "a");
map.put(, "b");
map.put(, "c");
// 第一种方式
Set<Integer> set = map.keySet();
// Collection<String> collection = map.values();
for (Integer integer : set) {
System.out.println(integer + ":" + map.get(integer));
}
// 第二种方式
Set<Entry<Integer, String>> entrySet = map.entrySet();
for (Entry<Integer, String> entry : entrySet) {
System.out.println(entry.getKey() + ":" + entry.getValue());
} /*
* Map常用的子类: Hashtable:内部结构是哈希表,是同步的,不允许null作为键,null作为值
* HashMap:内部结构是哈希表,不是同步的,允许null作为键,null作为值。
* TreeMap:内部结构是二叉树,不是同步的,可以对Map集合中的键进行排序
* HashMap的子类LinkedHashMap:存的时候和取得元素的位置顺序相同
*/ /*
* List和Set集合框架什么时候使用
* 如果需要唯一:Set
* 需要指定顺序:TreeSet
* 但是想要一个和存储一致的顺序:LinkedHashSet
* 不需要: HashSet
* 不需要: List
* 需要频繁增删:LinkedList
* 不需要:ArrayList
*/ } }

JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)的更多相关文章

  1. Java基础学习总结(49)——Excel导入导出工具类

    在项目的pom文件中引入 <dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifac ...

  2. java基础37 集合框架工具类Collections和数组操作工具类Arrays

    一.集合框架工具类:Collections 1.1.Collections类的特点 该工具类中所有的方法都是静态的 1.2.Collections类的常用方法 binarySearch(List< ...

  3. java集合框架工具类Collections,集合的操作

    1 import java.util.*; public class asList { public static void main(String args[]) { // int arr[] = ...

  4. Java笔记(二十四)……集合工具类Collections&Arrays

    Collections 集合框架的工具类,方法全部为静态 Collections与Collection的区别 Collection是集合框架的一个顶层接口,里面定义了单列集合的共性方法 Collect ...

  5. 集合中的工具类Collections和Arrays

    集合框架的工具类: Collections: 方法sort(): List<String> list = new ArrayList<String>();        lis ...

  6. Java基础进阶:APi使用,Math,Arrarys,Objects工具类,自动拆装箱,字符串与基本数据类型互转,递归算法源码,冒泡排序源码实现,快排实现源码,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    要点摘要 Math: 类中么有构造方法,内部方法是静态的,可以直接类名.方式调用 常用: Math.abs(int a):返回参数绝对值 Math.ceil(double a):返回大于或等于参数的最 ...

  7. java基础课程笔记 static 主函数 静态工具类 classpath java文档注释 静态代码块 对象初始化过程 设计模式 继承 子父类中的函数 继承中的构造函数 对象转型 多态 封装 抽象类 final 接口 包 jar包

    Static那些事儿 Static关键字 被static修饰的变量成为静态变量(类变量) 作用:是一个修饰符,用于修饰成员(成员变量,成员方法) 1.被static修饰后的成员变量只有一份 2.当成员 ...

  8. Java基础Day07(Map Calender Date 包装类 System类 异常)

    1.Map Map是集合容器,存放的元素有键与值两部分组成,通过键可以找到所对应的值,键和值必须是引用数据类型,键是唯一的,不能重复,没有顺序. HashMap是Map的实现类. Map的添加,删除, ...

  9. 集合框架工具类--Collections排序

    package ToolCollectionsDemo; import java.util.ArrayList; import java.util.Collections; import java.u ...

随机推荐

  1. Laravel教程 二:路由,视图,控制器工作流程

    Laravel教程 二:路由,视图,控制器工作流程 此文章为原创文章,未经同意,禁止转载. View Controller 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就 ...

  2. JavaScript的apply和call方法及其区别

    参考资料: http://blog.csdn.net/myhahaxiao/article/details/6952321 apply和call能“劫持”其他对象的方法来执行,其形参如下: apply ...

  3. [转载]angularjs学习总结 详细教程

    http://blog.csdn.net/yy374864125/article/details/41349417#t75 目录(?)[-] 前言 AngularJS概述 AngularJS是什么 A ...

  4. 让chrome浏览器变成在线编辑器

    在大部分人眼里,技术宅给人的印象是沉默寡言,总摸不透他心里想些什么,彼此都保持距离.作为半个程序员,我觉得真正的技术宅大部分时间都在找乐子,鼓捣各种想法,和大部分人的极客心理是一样的,程序员也还爱讲笑 ...

  5. RHEL 安装gcc 艰难历程

    装好系统后···· 各种搜的方案都不好使····· 最后搜到有人说在刚装系统的时候定制软件之类的那个地方选上“开发工具”就可以...

  6. 记Flume-NG一些注意事项(不定时更新,欢迎提供信息)

    这里只考虑flume本身的一些东西,对于JVM.HDFS.HBase等得暂不涉及.... 一.关于Source: 1.spool-source:适合静态文件,即文件本身不是动态变化的: 2.avro ...

  7. cf.VK CUP 2015.B.Mean Requests

    Mean Requests time limit per test 4 seconds memory limit per test 256 megabytes input standard input ...

  8. SpringMVC关于json、xml自动转换的原理研究

    SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC ...

  9. cocos2d回忆

    凭借自己的回忆想想看自己都学到了那些知识,这是小学的时候当初中老师的外公给我说的,现在想想,CCDirector,CCNode,CCScene,CCSprite这几个类,然后是坐标,锚点,CCNode ...

  10. 在Shell里面判断字符串是否为空

     在Shell里面判断字符串是否为空 分类: Linux shell2011-12-28 23:18 15371人阅读 评论(0) 收藏 举报 shell 主要有以下几种方法: echo “$str” ...