Java如何对List集合的操作方法(二)
4.list中查看(判断)元素的索引;
注意:.indexOf(); 和 lastIndexOf()的不同;
///*****************************************////
List<String> NBAStars = new ArrayList<String>();
NBAStars.add("库里"); //索引0
NBAStars.add("汤普森"); //索引1
NBAStars.add("杜兰特"); //索引2
NBAStars.add("库里"); //索引3
NBAStars.add("哈登"); //索引4
NBAStars.add("戴维斯");
NBAStars.add("詹姆斯");
NBAStars.add("杜兰特");
System.out.println(NBAStars.indexOf("杜兰特"));
System.out.println(NBAStars.lastIndexOf("杜兰特"));
System.out.println(NBAStars.indexOf("库里"));
效果图:
5.根据元素索引位置进行的判断:
1 if(NBAStars.indexOf("杜兰特")==2){ 2 System.out.println("杜兰特在这里"); 3 }else if (NBAStars.indexOf("杜兰特")==7) { 4 System.out.println("杜兰特在那里"); 5 }else { 6 System.out.println("杜兰特在勇士?"); 7 }
6.利用list中索引位置重新生成一个新的list(截取集合);
方法: .subList(fromIndex, toIndex); .size() ; 该方法得到list中的元素数的和
1 List<String> phone=new ArrayList<>(); 2 phone.add("三星"); //索引为0 3 phone.add("苹果"); //索引为1 4 phone.add("锤子"); //索引为2 5 phone.add("华为"); //索引为3 6 phone.add("小米"); //索引为4 7 //原list进行遍历 8 for(String pho:phone){ 9 System.out.println(pho); 10 } 11 //生成新list 12 phone=phone.subList(1, 4); //.subList(fromIndex, toIndex) //利用索引1-4的对象重新生成一个list,但是不包含索引为4的元素,4-1=3 13 for (int i = 0; i < phone.size(); i++) { // phone.size() 该方法得到list中的元素数的和 14 System.out.println("新的list包含的元素是"+phone.get(i)); 15 }
7.对比两个list中的所有元素:
//两个相等对象的equals方法一定为true, 但两个hashcode相等的对象不一定是相等的对象
System.out.println("两个list中的所有元素相同"); }else { System.out.println("两个list中的所有元素不一样"); } if (person.hashCode()==fruits.hashCode()) { System.out.println("我们相同"); }else { System.out.println("我们不一样"); }
8.判断list是否为空;
//空则返回true,非空则返回false
if (person.isEmpty()) { System.out.println("空的"); }else { System.out.println("不是空的"); }
9.返回Iterator集合对象:
System.out.println("返回Iterator集合对象:"+person.iterator());
10.将集合转换为字符串;
String liString=""; liString=person.toString(); System.out.println("将集合转换为字符串:"+liString);
11.将集合转换为数组:
System.out.println("将集合转换为数组:"+person.toArray());
12.集合类型转换:
List<Object> listsStrings=new ArrayList<>(); for (int i = 0; i < person.size(); i++) { listsStrings.add(person.get(i)); } //2.指定类型 List<StringBuffer> lst=new ArrayList<>(); for(String string:person){ lst.add(StringBuffer(string)); }
13.去重复:
1 List<String> lst1=new ArrayList<>(); 2 lst1.add("aa"); 3 lst1.add("dd"); 4 lst1.add("ss"); 5 lst1.add("aa"); 6 lst1.add("ss"); 7 8 //方法 1. 9 for (int i = 0; i <lst1.size()-1; i++) { 10 for (int j = lst1.size()-1; j >i; j--) { 11 if (lst1.get(j).equals(lst1.get(i))) { 12 lst1.remove(j); 13 } 14 } 15 } 16 System.out.println(lst1); 17 18 //方法 2. 19 List<String> lst2=new ArrayList<>(); 20 for (String s:lst1) { 21 if (Collections.frequency(lst2, s)<1) { 22 lst2.add(s); 23 } 24 } 25 System.out.println(lst2);