码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员——Collections简述

时间:2015-06-06 12:12:25      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.comtarget="blank">

java培训</a>、期待与您交流! ---------

Collections工具类的简述


Collections中的sort方法使用


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionssDemos 

{
public static void main(String[] args) 

      {
med1();
}


private static void med1() 

        {
List<String>  lis = new ArrayList();
lis.add("11245");
lis.add("2245");
lis.add("41245");
lis.add("21245");
lis.add("11245");
System.out.println(lis);//[11245, 2245, 41245, 21245, 11245]
Collections.sort(lis);
System.out.println(lis); //[11245, 11245, 21245, 2245, 41245]
}
}

-------------------------------------------------------------------------------------------------------------------------

使用自定义方法对集合中的元素进行排序

自定义一个比较器,对集合中的元素进行排序

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
//定义一个按照字符串的长度比较器类
class StringLengthSort implements Comparator<String>
{
public int compare(String s1,String s2)
{
if(s1.length()>s2.length())
return 1;

if(s1.length()<s2.length())
        return -1;
return s1.compareTo(s2);
}
}
//------------------------------------
public class CollectionssDemos {
public static void main(String[] args) {
med1();
}

private static void med1() {
List<String>  lis = new ArrayList();
lis.add("11245");
lis.add("2245");
lis.add("41245");
lis.add("21245");
lis.add("11245");
//排序前的输出结果
System.out.println(lis);//[11245, 2245, 41245, 21245, 11245]
//对集合元素进行排序
Collections.sort(lis,new StringLengthSort());//使用自定义比较器
//排序后的输出结果
System.out.println(lis);
//[2245, 11245, 11245, 21245, 41245]

}


}

找出集合元素中的最大值


Collections中的求集合元素的最大值

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CollectionssDemos {
public static void main(String[] args) {
// TODO Auto-generated method stub
med2();

}
private static void med2() {
// TODO Auto-generated method stub
//新建一个集合,并添加元素
List<String>  lis = new ArrayList();
lis.add("11245");
lis.add("2245");
lis.add("41245");
lis.add("21245");
lis.add("11245");
//在控制台上输出没有排序前的集合元素
System.out.println(lis);//[11245, 2245, 41245, 21245, 11245]
//对集合元素进行排序
Collections.sort(lis);
//在控制台上输出排序后的集合元素
System.out.println(lis);//[11245, 11245, 21245, 2245, 41245]
//对集合元素取最大值操作
String max = Collections.max(lis);
//输出最大值
System.out.println(max);//41245
}

}

查找相关元素对应的角标

private static void med3() {
// 
//新建一个集合,并添加元素
List<String>  lis = new ArrayList();
lis.add("11245");
lis.add("2245");
lis.add("41245");
lis.add("21245");
lis.add("11245");
//在控制台上输出没有排序前的集合元素
System.out.println(lis);//[11245, 2245, 41245, 21245, 11245]
//对集合元素进行排序
Collections.sort(lis);
//在控制台上输出排序后的集合元素
System.out.println(lis);//[11245, 11245, 21245, 2245, 41245]
//获取元素的相应角标
int index = Collections.binarySearch(lis, "2245");
System.out.println(index);

}

使用自定义二分法查找

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class CollectionssDemos {
public static void main(String[] args) {
med4();
}
        //演示自定义二分查找方法
private static void med4() {
// TODO Auto-generated method stub
//新建一个集合,并添加元素
List<String>  lis = new ArrayList();
lis.add("11245");
lis.add("2245");
lis.add("41245");
lis.add("21245");
lis.add("11245");
//在控制台上输出没有排序前的集合元素
System.out.println(lis);//[11245, 2245, 41245, 21245, 11245]
//对集合元素进行排序
Collections.sort(lis);
//在控制台上输出排序后的集合元素
System.out.println(lis);//[11245, 11245, 21245, 2245, 41245]
//调用自定义二分查找方法查找相应元素
int  num = medall(lis,"11245");
System.out.println(num);
}
//定义一个二分法查找方法
public static int medall(List<String> list,String key)
{
int min ,mid ,max;
min = 0;
max=list.size();
while(min<=max)
{
mid = (min+max)/2;
String str = list.get(mid);
int num = str.compareTo(key);
   if(num>0)
    max = mid-1;
   else if(num<0)
    min = mid +1;
   else
    return mid;
}
return -min-1;

}

}

将集合中的固定元素替换成指定的元素

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CollectionssDemos {
public static void main(String[] args) {
med6();
}
private static void med6() {
// TODO Auto-generated method stub
  //新建一个集合,并添加元素
  List<String>  lis = new ArrayList();
  lis.add("11245");
  lis.add("2245");
  lis.add("41245");
       lis.add("21245");
  lis.add("11245");
  //在控制台上输出没有排序前的集合元素
  System.out.println(lis);//[11245, 2245, 41245, 21245, 11245]
  //对集合元素进行排序
  Collections.sort(lis);
  //在控制台上输出排序后的集合元素
  System.out.println(lis);//[11245, 11245, 21245, 2245, 41245]
  //调用方法
  Collections.replaceAll(lis, "2245", "lkkkk");
  System.out.println(lis);
  //[11245, 11245, 21245, lkkkk, 41245]
}

将集合中的所有元素全部替换成指定元素

private static void med5() {
// TODO Auto-generated method stub
//新建一个集合,并添加元素
List<String>  lis = new ArrayList();
lis.add("11245");
lis.add("2245");
lis.add("41245");
lis.add("21245");
lis.add("11245");
//在控制台上输出没有排序前的集合元素
System.out.println(lis);//[11245, 2245, 41245, 21245, 11245]
//对集合元素进行排序
Collections.sort(lis);
//在控制台上输出排序后的集合元素
System.out.println(lis);//[11245, 11245, 21245, 2245, 41245]
//调用方法fill,将集合中的所有元素替换成指定元素
Collections.fill(lis, "aa");
//输出替换后的元素
System.out.println(lis);
}

自定义方法将集合中的部分元素替换成指定元素


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class CollectionssDemos {

public static void main(String[] args) {
med7();
}
private static void med7() {
//新建一个集合,并添加元素
  List<String>  lis = new ArrayList();
  lis.add("11245");
  lis.add("2245");
  lis.add("41245");
           lis.add("21245");
  lis.add("11245");
  //在控制台上输出没有排序前的集合元素
  System.out.println(lis);//[11245, 2245, 41245, 21245, 11245]
  //对集合元素进行排序
  Collections.sort(lis);
  //在控制台上输出排序后的集合元素
  System.out.println(lis);//[11245, 11245, 21245, 2245, 41245]
  //调用方法自定义替换部分元素的方法
  medreplace(lis,"kk",1,3);
  //输出替换后的集合元素
  System.out.println(lis);
  //[11245, kk, kk, 2245, 41245]
  
}

//自定义一个方法将集合中的部分元素替换成指定元素
    private static void medreplace(List lis,String s,int start,int end)
    {
    for(int i =start;i<end;i++)
    {
    lis.set(i, s);
    }
    }

}



将集合中的元素反转操作

private static void med8() {
// TODO Auto-generated method stub
//新建一个集合,并添加元素
  List<String>  lis = new ArrayList();
  lis.add("11240");
  lis.add("2245");
  lis.add("41245");
 lis.add("21245");
  lis.add("11245");
  //在控制台上输出没有排序前的集合元素
  System.out.println(lis);//[11240, 2245, 41245, 21245, 11245]
  //调用方法对集合中的元素进行反转操作
  Collections.reverse(lis);
  //输出进行反转后的集合元素
  System.out.println(lis);//[11245, 21245, 41245, 2245, 11240]
}

调用方法使集合TreeSet 中倒序排序

public class CollectionssDemos {
public static void main(String[] args) {
med9();
}
private static void med9() {
// TODO Auto-generated method stub
TreeSet<String> t = new TreeSet(Collections.reverseOrder());
t.add("ssssd");
t.add("asssd");
t.add("csssd");
t.add("asasd");
t.add("abssd");
Iterator<String> it = t.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}



黑马程序员——Collections简述

标签:

原文地址:http://blog.csdn.net/zl18603543572/article/details/46385673

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!