集合中的工具类Collections和Arrays
集合框架的工具类:
Collections:
方法sort():
List<String> list = new ArrayList<String>();
list.add("gfhd");
list.add("abc");
list.add("a");
list.add("aaaadfs");
sort(list);//按自然顺序排列,String类型按字符串第一位比较依次往后比较;
sort(list,new Compare());//按比较器进行排序
比较器:
public class Compare implements Comparator<String>{
public int compare(String o1, String o2) {
if(o1.length() > o2.length()){
return 1;
}
if(o1.length() < o2.length()){
return -1;
}
return o1.compareTo(o2);
}
}
max(list);//自然顺序最大值
max(list,new Compare());//比较器排序后的最大值
Collections.binarysearch(list,对象);//根据默认sort排序查找对象;binarySearch 方法,前提是此集合必须是有序的
Collections.binarysearch(list,对象,new Compare());//根据比较器排序查找对象;相当于我们调用half方法,折半查找。
Collections.fill(list."你好");//把list集合里的元素替换成 “你好”
Collections.replaceAll(list,"A","B");//把A替换成B;
Collections.reverse(list);//反转集合;
Arrays
用于操作数组的工具类,里面都是静态方法,
Arrays.copyOf(arr,index);arr截取的数组,index为截取长度
Arrays.fill(arr,index,index1,A);//将arr里的角标 index--index1(包含index但不包含index1) 的元素全部替换成A,
将数组转换为list集合:
//如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转换成集合中的元素。
//如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素进行存储
int[] arr = {1,2,3,4};
List<int[]> list = Arrays.asList(arr);
System.out.println(list);
Integer[] arr1 = {1,2,3,4};
List<Integer> list1 = Arrays.asList(arr1);
System.out.println(list1);
集合转数组:
* 当指定类型的数组长度小于集合的size,那么该方法内部会创建一个数组长度为size
* 当指定类型的数组长度大于了集合的size,就不会新创建数组,而是使用传递进来的数组。
* 所以创建一个刚刚好的数组最优
* 为了限定对元素对操作,不需要进行增删了
String[] arr = list.toArray(new String[list.size()]);
System.out.println(Arrays.toString(arr));
传统for循环和高级for循环的区别:
高级for有局限性,必须有被遍历的目标。比如打印helloworld一百次。
所以我们在遍历数组的时候希望使用传统for循环。因为传统for循环可以定义角标
foreach:
for(String str:list){
System.out.println(str);
}
遍历map集合:
HashMap<Integer, String> ha = new HashMap<Integer, String>();
// 实现1:
Set<Integer> keySet = ha.keySet();
for(Integer key : keySet){
System.out.println("key = "+key+" value = "+ha.get(key));
}
// 实现2:
for(Map.Entry<Integer, String> mm : ha.entrySet()){//ha.entrykeySet()获取key集合
System.out.println("key = "+mm.getKey()+" value = "+mm.getValue());
}
可变参数
public static void show(int... arr){//把输入的装进数组里
System.out.println(arr);
}
show(2,4,6,7,89);
System.out.println(show);结果为[2,4,6,7,89];
静态导入
当方法重名时,需要指定具体的包名
当方法重名时,指定所属的对象或者类
import java.util.*;
import static java.util.Arrays.*;// 导入的是Arrays这个类中的所有成员
其他对象
System
/*描述系统的一些信息,不能被实例化.他的方法和属性都是静态的
out代表:标准输出,默认是控制台
in代表:标准输入,默认键盘
获取系统属性信息:getProperties()
Runtime
Date
Date d = new Date();
System.out.println(d);
//将模式封装到SimpleDateFormat对象中
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E HH:mm:ss");
//调用format方法让模式格式化date对象
String time = sdf.format(d);
System.out.println(time);
Calendar
Calendar c = Calendar.getInstance();
// 设置日期
// c.set(2017, 4, 26);
// add方法对时间量的偏移
c.add(Calendar.YEAR, -1);
print(c);
}
System.out.println(c.get(Calendar.YEAR)+"年");
集合中的工具类Collections和Arrays的更多相关文章
- JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)
package com.itcast.test20140113; import java.util.ArrayList; import java.util.Arrays; import java.ut ...
- 002-jdk-数据结构-工具类Collections、Arrays、System.arraycopy
常用备注 一.LIst to Array List<String> list = new ArrayList<String>(); Object[] array=list.to ...
- [黑马程序员] 集合框架2——Map系 & 集合工具类(Collections、Arrays)
---------------------- ASP.Net+Android+IO开发..Net培训.期待与您交流! ---------------------- 0. 集合框架按其所实现的接口, 大 ...
- 工具类Collections、Arrays(传入的是数组)
Collections类: 1. Collections.sort(list) //对list集合进行排序前提是 list里面存储的对象已经实现了 comparable接口 2. Collecti ...
- Java 集合系列之六:工具类Collections和Arrays基本操作
1. Collections Collections类主要是完成了两个主要功能 提供了若干简单而又有用的算法,比如排序,二分查找,求最大最小值等等. 提供对集合进行包装的静态方法.比如把指定的集合包装 ...
- Java从零开始学二十四(集合工具类Collections)
一.Collections简介 在集合的应用开发中,集合的若干接口和若干个子类是最最常使用的,但是在JDK中提供了一种集合操作的工具类 —— Collections,可以直接通过此类方便的操作集合 二 ...
- Java笔记(二十四)……集合工具类Collections&Arrays
Collections 集合框架的工具类,方法全部为静态 Collections与Collection的区别 Collection是集合框架的一个顶层接口,里面定义了单列集合的共性方法 Collect ...
- java的集合工具类Collections
集合框架的工具类. Collections:集合框架的工具类.里面定义的都是静态方法. Collections和Collection有什么区别? Collection是集合框架中的一个顶层接口,它里面 ...
- Java:集合工具类-Collections
Java.util.Collections 集合框架工具类Collections,其方法都是静态的,本身没有构造函数. 常见方法: static <T extends Comparable< ...
随机推荐
- lamp中的Oracle数据库链接
lamp一键安装包: https://lnmp.org/install.html 在CentOS 6.7 64位安装PHP的PDO_OCI扩展 Installing PDO_OCI extension ...
- XPath学习
一.基本语法 1.以 / 斜线开始,该路径表示到一个元素下的绝对路径 2.如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系) 3.星号 * 表示选择所有由 ...
- Python(装饰器)
eval 内容从字符串中提取出来,用Python运行一遍__name__得到函数名字 闭包函数 定义: 函数内部定义的函数称为内部函数 该内部函数包含对外部作用域,而不是对全局作用域的名字的引用 那么 ...
- Python(输入、输出;简单运算符;流程控制;转译)
一 输入输出 python3中统一都是input,python2中有raw_input等同于python3的input,另外python2中也有input 1.res=input("pyth ...
- C# 复杂算法
1.添加命名空间引用using Microsoft.JScript; //formula 是公式如:(1+2)*3/10 private double GetComputeValueByStringF ...
- Spring框架学习之IOC(二)
Spring框架学习之IOC(二) 接着上一篇的内容,下面开始IOC基于注解装配相关的内容 在 classpath 中扫描组件 <context:component-scan> 特定组件包 ...
- 450. Delete Node in a BST
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Retur ...
- launch 文件解析
roslaunch工具是ros中python实现的程序启动工具,通过读取launch文件中的参数配置.属性配置等来启动一系列节点: 很多ROS包或源码包中都有launch文件,一般为该程序包能够运行起 ...
- alter table add constraint 用法
1.主键约束: 要对一个列加主键约束的话,这列就必须要满足的条件就是分空 因为主键约束:就是对一个列进行了约束,约束为(非空.不重复) 以下是代码 要对一个列加主键,列名为id,表名为emp 格式 ...
- react-native run-android Starting: Intent Error type 3 Error: Activity class does not exist
使用”react-native run-android”命令运行android应用时,如果常常出现如下错误: Starting the app (/home/xxx/soft/sdk//platfor ...