public static void main(String[] args) {
sortDemo();
}
public static void sortDemo() {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("aa");
list.add("kkkkk");
list.add("z");
list.add("z");
list.add("qq");
sop(list);
//Collections.sort(list);
Collections.sort(list,new StrLenComparator());
sop(list);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
class StrLenComparator 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);
}
}
max实例:
public static void main(String[] args) {
maxDemo();
}
public static void maxDemo() {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("aa");
list.add("kkkkk");
list.add("z");
list.add("zz");
list.add("qq");
Collections.sort(list);
sop(list);
String max = Collections.max(list);//(list,new StrLenComparator())最大长度字符
sop("max="+max);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
class StrLenComparator 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);
}
}
binarySeach原理:
返回值如果是整数那么这个数在这个集合中是存在的,如果返回的值是负数,那么是插入点-1.
public static void main(String[] args) {
binarySearchDemo();
}
public static void binarySearchDemo() {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("aa");
list.add("kkkkk");
list.add("z");
list.add("zz");
list.add("qq");
Collections.sort(list);
sop(list);
int index = Collections.binarySearch(list, "aaaa");
sop("index="+index);
}
集合替换反转:
public static void main(String[] args) {
replaceAllDemo();
}
public static void replaceAllDemo() {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("aa");
list.add("kkkkk");
list.add("z");
list.add("zz");
list.add("qq");
sop(list);
Collections.replaceAll(list, "aa", "bb");
sop(list);
Collections.reverse(list);//替换反转
sop(list);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
将比较器强行逆转排列顺序:
集合Arrays:
public static void main(String[] args) {
//把数组变成List集合有什么好处?
//可以使用集合的思想和方法来操作数组中的元素
//注意:将数组变成集合,不可以使用集合的增删方法。因为数组的长度是固定的,如果增删
//会造成不支持异常。
String[] arr= {"a","bb","ccc"};
List<String> list = Arrays.asList(arr);
sop(list);
Integer [] trr = {2,3,4};
//如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素
//如果数组中的元素都是基本数据类型,那么会将改数组作为集合中的元素存在。
List<Integer> li = Arrays.asList(trr);
sop(li);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
增强for循环:
public static void main(String[] args) {
ArrayList<String> al = new ArrayList<String>();
al.add("abc");
al.add("abc1");
al.add("abc2");
Iterator<String> it = al.iterator();
for(String s :al) {
System.out.println(s);
}
// while(it.hasNext()) {
// System.out.println(it.next());
// }
HashMap<Integer,String> hm = new HashMap<Integer,String>();
hm.put(1, "abc");
hm.put(2, "abc2");
hm.put(3, "abc3");
Set<Integer> keySet = hm.keySet();
for(Integer i : keySet) {
System.out.println(i+"::"+hm.get(i));
}
}
}
可变参数:
注意:在使用的时候,可变参数一定要定义在参数列表的最后边。