Collections工具类的使用

public class News implements Comparable {
private int id; //新闻编号
private String title; //新闻标题 @Override
public String toString() {
return "新闻 [编号=" + id + ", 标题=" + title + "]";
} public News() { //无参构造
super();
}
public News(int id, String title) { //带参构造
super();
this.id = id;
this.title = title;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
} //重写 排序的规则 升序
@Override
public int compareTo(Object o) {
News news=(News) o;
if (news.getId()==this.id) {
return 0;
}else if (news.getId()<this.id) {
return 1; // 降序 return -1;
}else {
return -1; // 降序 return 1;
}
}
}

创建测试类

public class CollectionsTest {

    public static void main(String[] args) {
/*
* 操作集合的工具类Collections
*
*/
//创建一个集合
List<String> list=new ArrayList<String>();
list.add("b");
list.add("d");
list.add("c");
list.add("a");
System.out.println("没有排序====》"+list); //插入时候的顺序
//对集合进行随机排序
Collections.shuffle(list);
//开奖号码 136 顺序必须对 631不对
System.out.println("随机排序====》"+list);
//按照字母的升序排列
Collections.sort(list);
System.out.println("升序====》"+list);
//降序 也是必须在升序之后
Collections.reverse(list);
System.out.println("降序====》"+list);
//查询 "b"在集合中的位置 必须先升序 排列之后再查询
Collections.sort(list);
System.out.println(Collections.binarySearch(list, "a"));
System.out.println("****************************");
List<News> news=new ArrayList<News>(); //想实现对象的排序
news.add(new News(3, "新闻3"));
news.add(new News(1, "新闻1"));
news.add(new News(4, "新闻4"));
news.add(new News(2, "新闻2"));
for (News news2 : news) {
System.out.println(news2);
}
/*
* 如果News没有重写Comparable接口中的compareTo()是编译报错的!
* 我们必须重写compareTo() 定义规则
*/
Collections.sort(news);
System.out.println("对象排序之后.........");
for (News news2 : news) {
System.out.println(news2);
}
} @Test
public void test1(){
//通过String类中的split()把字符串转换成字符串数组
String[] str1="a b c d d d".split(" ");
//把数组转换成集合
List<String> asList = Arrays.asList(str1);
System.out.println(asList);
String[] str2="c d".split(" ");
List<String> asList2= Arrays.asList(str2);
//最后一次出现的位置
System.out.println(Collections.lastIndexOfSubList(asList, asList2));
//首次出现的位置
System.out.println(Collections.indexOfSubList(asList, asList2));
} @Test
public void test2(){
String[] str1="a b c d e f".split(" ");
//把数组转换成集合
List<String> list = Arrays.asList(str1);
System.out.println(list);
//集合中的元素向后移distance个位置,之后被覆盖的元素循环前移
Collections.rotate(list, 2);
System.out.println(list);
}
}

3.map遍历的效率比较

@Test
public void test(){
Map<String, Object> map=new HashMap<String, Object>();
for (int i = 0; i <1000000; i++) {
map.put("key"+i, "value"+i);
}
//获取当前毫秒数
Long a= System.currentTimeMillis();
//遍历map 首先获取所有key的集合
Set<String> set = map.keySet();
for (String key : set) {
map.get(key); //根据key取得value
}
//获取当前毫秒数
Long b= System.currentTimeMillis();
System.out.println("使用keySet遍历的时间是:"+(b-a)); //使用entry遍历 效率最高的
Set<Entry<String, Object>> entrySet = map.entrySet();
for (Entry<String, Object> entry : entrySet) {
entry.getValue();
}
//获取当前毫秒数
Long c= System.currentTimeMillis();
System.out.println("使用entrySet遍历的时间是:"+(c-b));
}

汉字的排序

public class ListTest {

    public static void main(String[] args) {
//实现都汉字的排序 传入一个语言环境
Comparator<Object> collator=Collator.getInstance(Locale.CHINA);
ArrayList<String> list=new ArrayList<String>();
list.add("你好");
list.add("好");
list.add("啊");
list.add("它好");
//工具类
Collections.sort(list, collator);
for (String string : list) {
System.out.println(string);
}
} }

最新文章

  1. 【Debug】Web开发中,Tomcat正常启动,访问欢迎页404,怎么办?
  2. 谈谈对Spring IOC的理解【转】
  3. HQL 参数绑定、唯一结果、分页、投影总结(上)
  4. 那些教程没有的php2-对象
  5. Postgres-XL介绍
  6. Linux dirname $0 source if
  7. Java 第六天 Spring Annotation 和其它
  8. HDU 5620 KK&#39;s Steel (斐波那契序列)
  9. about云开发虚拟化资源汇总,持续更新
  10. ecshop了解01
  11. ES6-2
  12. H5页面音频自动播放问题
  13. websocket做手机页面聊天与PC页面聊天一对一的即时通讯
  14. Rafy 开源贡献中心 - 组织成立,并试运行一月小结
  15. 学号 20175201张驰 《Java程序设计》第8周学习总结
  16. 010 Spark中的监控----日志聚合的配置,以及REST Api
  17. MySQL大数据量分页查询方法及其优化
  18. 《FPGA设计技巧与案例开发详解-第二版》全套资料包
  19. mysql 错误解决:Plugin &#39;FEDERATED&#39; is disabled. /usr/sbin/mysqld: Table &#39;mysql.plugin&#39; doesn&#39;t exist
  20. bzoj4361:isn(dp+容斥+树状数组)

热门文章

  1. 【USACO 1.3.3】回文串
  2. php中session的运行机制
  3. Java获取昨天的时间
  4. css伪元素
  5. 委托异步调用时BeginInvoke的陷阱处理
  6. MLlib 编程指导-spark-1.2.0
  7. storm接入metaq时类不兼容错误 无法初始化MonitorLog
  8. C++学习笔记4——类的封装(2)
  9. JS之路——Math数学对象
  10. Java中抽象类和接口的用法和区别