1 package cn.itcast.p2.toolclass.collections.demo;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.Comparator;
6 import java.util.List;
7 import java.util.TreeSet;
8
9 import cn.itcast.p2.comparator.ComparatorByLength;
10
11 public class CollectionsDemo {
12
13 public static void main(String[] args) {
14 // TODO Auto-generated method stub
15 /*
16 * Collections:是集合框架的工具类。
17 * 里面的方法都是静态的。
18 */
19 // demo_1();//排序
20 // demo_2();//折半 最值
21 // demo_3();//逆序
22 demo_4();//替换
23
24 }
25
26
27
28 private static void demo_4() {
29 // TODO Auto-generated method stub
30 List<String> list = new ArrayList<String>();
31
32 list.add("abcde");
33 list.add("cba");
34 list.add("zhangsan");
35 list.add("zhaoliu");
36 list.add("xiaoqiang");
37
38 System.out.println(list);
39 // Collections.replaceAll(list, "cba", "nba");//replaceAll相当于set(indexOf"cba","nba");
40 // Collections.fill(list, "cc");//fill一次性将集合的所有值替换或重新初始化一次
41 Collections.shuffle(list);//随机将元素安在任意位置
42 System.out.println(list);
43 }
44
45 private static void demo_3() {
46 // TODO Auto-generated method stub
47
48 // TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder());//原理就是下面这个方法
49 /* TreeSet<String> ts = new TreeSet<String>(new Comparator<String>() {
50 public int compare(String o1, String o2) {
51 int temp = o2.compareTo(o1);
52 return temp;
53 }
54 });
55 */ //自己实现
56
57 //reverseOrder(Comparator<T> cmp),将一个已有比较器逆转
58 TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new ComparatorByLength()));
59 ts.add("abc");
60 ts.add("hahaha");
61 ts.add("zzz");
62 ts.add("aa");
63 ts.add("cba");
64
65 System.out.println(ts);
66 }
67
68 private static void demo_2() {
69 // TODO Auto-generated method stub
70 List<String> list = new ArrayList<String>();
71
72 list.add("abcde");
73 list.add("cba");
74 list.add("aa");
75 list.add("zzz");
76 list.add("cba");
77 list.add("nbaa");
78 //折半要先排序
79 Collections.sort(list);
80 System.out.println(list);
81
82 int index = Collections.binarySearch(list, "aaa");
83
84 System.out.println("index="+index);
85
86 //获取最大值。
87 // String max = Collections.max(list);//max=zzz
88 String max = Collections.max(list,new ComparatorByLength());
89 System.out.println("max="+max);
90 }
91
92 public static void demo_1() {
93
94 List<String> list = new ArrayList<String>();
95
96 list.add("abcde");
97 list.add("cba");
98 list.add("aa");
99 list.add("zzz");
100 list.add("nbaa");
101 System.out.println(list);
102
103
104
105 //对list集合进行指定顺序的排序。
106 // Collections.sort(list);
107 // mySort(list);
108 // mySort(list, new ComparatorByLength());
109 System.out.println(list);
110
111
112 }
113 //下面方法相当于Collections.sort(list,new ComparatorByLength);
114 /*
115 public static <T> void mySort(List<T> list,Comparator<? super T> comp) {
116
117 for (int i = 0; i < list.size()-1; i++) {
118 for (int j = i+1; j < list.size(); j++) {
119 if (comp.compare(list.get(i),list.get(j)) >0) {
120 // T temp = list.get(i);
121 // list.set(i, list.get(j));
122 // list.set(j, temp);
123 Collections.swap(list, i, j);
124 }
125 }
126 }
127 }
128 //介绍Collections.swap交换方法
129 /*
130 public static <T extends Comparable<? super T>> void mySort(List<T> list) {
131 for (int i = 0; i < list.size()-1; i++) {
132 for (int j = i+1; j < list.size(); j++) {
133 if (list.get(i).compareTo(list.get(j))> 0 ) {
134 // T temp = list.get(i);
135 // list.set(i, list.get(j));
136 // list.set(j, temp);
137 Collections.swap(list, i, j);
138 }
139 }
140 }
141 }*/
142
143 //相当于按自然顺序方法升序排列Collections.sort
144 //public static <T extends Comparable<? super T>> void sort(List<T> list)
145 /*
146 public static <T extends Comparable<? super T>> void mySort(List<T> list) {
147 for (int i = 0; i < list.size()-1; i++) {
148 for (int j = i+1; j < list.size(); j++) {
149 if (list.get(i).compareTo(list.get(j))> 0 ) {
150 T temp = list.get(i);
151 list.set(i, list.get(j));
152 list.set(j, temp);
153 }
154 }
155 }
156 }*/
157
158 //传入String类型的集合
159 /* public static void mySort(List<String> list) {
160
161 for (int i = 0; i < list.size()-1; i++) {
162 for (int j = i+1; j < list.size(); j++) {
163 if (list.get(i).compareTo(list.get(j))> 0 ) {
164 String temp = list.get(i);
165 list.set(i, list.get(j));
166 list.set(j, temp);
167 }
168 }
169 }
170 }*/
171
172 }

CollectionsDemo

集合框架-工具类-Collections-逆序替换的更多相关文章

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

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

  2. JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)

    package com.itcast.test20140113; import java.util.ArrayList; import java.util.Arrays; import java.ut ...

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

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

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

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

  5. 操作集合的工具类Collections

    1       操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操 ...

  6. java之操作集合的工具类--Collections

    Collections是一个操作Set.List和Map等集合的工具类. Collections中提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了对集合对象设置不可变.对集合对象实现同步控 ...

  7. Java-集合第六篇操作集合的工具类Collections

    1.Java提供了一个操作Set.List.Map等集合的工具类:Collections. 工具类中提供的方法主要针对Set.List.Map的排序.查询.修改等操作,以及将集合对象设置为不可变.对集 ...

  8. Java基础---泛型、集合框架工具类:collections和Arrays

    第一讲     泛型(Generic) 一.概述 1.JDK1.5版本以后出现的新特性.用于解决安全问题,是一个类型安全机制. 2.JDK1.5的集合类希望在定义集合时,明确表明你要向集合中装入那种类 ...

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

    1 package cn.itcast.p2.toolclass.collections.demo; 2 3 import java.util.ArrayList; 4 import java.uti ...

随机推荐

  1. Mysq索引优化(什么情况创建索引,什么情况不创建索引)

    一.以下情况需要创建索引 1.主键自动建立唯一索引 2.频繁作为查询条件的字段应该创建索引 3.查询中与其他表关联的字段,外键关系建立索引 4.单键/组合索引的选择问题,组合索引性价比更高 5.查询中 ...

  2. JS验证身份证是否符合规则

    调用isIdCardNo(num)  验证通过返回true 错误返回false function isIdCardNo(num) { var factorArr = new Array(7, 9, 1 ...

  3. IDEA 修改之前保存的git地址的账号和密码

    1.打开控制面板 快捷键 win+R,然后输入control,打开控制面板 2.用户账户 3.管理windows凭据 4.点击里面的git就可以修改了

  4. Tomcat配置使用域名访问项目

    找到tomcat下的conf文件夹,打开server.xml文件 在操作之前要把域名映射到服务器上.测试办法就是,打开cmd 输入ping  域名,能够显示对应的ip即可 首先把访问端口改为80访问. ...

  5. 【LeetCode】716. Max Stack 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双栈 日期 题目地址:https://leetcode ...

  6. 【LeetCode】775. Global and Local Inversions 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/global-a ...

  7. 【LeetCode】905. Sort Array By Parity 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述: 题目大意 解题方法 自定义sorted函数的cmp 日期 题目地址:h ...

  8. 【LeetCode】650. 2 Keys Keyboard 只有两个键的键盘(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 素数分解 日期 题目地址:https://le ...

  9. 【LeetCode】789. Escape The Ghosts 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  10. 【项目管理】《IT项目管理》Kathy Schwalbe 第2章 IT项目管理和IT背景

    1.对项目管理采取系统的观点有何意义?如何在项目管理中采用系统的观点? 意义:有效处理复杂的环境 采用系统方法,系统分析,系统管理.2.解释组织的四个框架.他们是如何帮助项目经理理解项目的组织环境的? ...