2020-8-17
Posted cvems700
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020-8-17相关的知识,希望对你有一定的参考价值。
Collection ①List ②Set
Map–>hashMap
Set hashSet
List ->ArrayList LinkedList
ArrayList:连续的可变长度数组可以存任何信息
遍历,随机访问的效率高
LinkList:链表数组,非连续的,非顺序的
更改数组元素效率高
Set:无序的,不可重复的(数据不能相同)
Map:以key –value的形式存储,存储的都是对象
在java5之前存入到容器中的类型都是object增加泛型后,java容器可以记住存放的类型
Comparable comparator用来自动判断set中的元素
Collection接口提供的方法
(1)add(E e): 返回值为bool类型
(2)addAll()
(3)clear();
(4)contains(Object b)
(5)equals()
(6)isEmpty()
(7)iterator() 迭代器:返回迭代器类型
迭代器
hasNext() next() remove()
interator仅用于遍历集合,(实现循环)
一.List
1.list是collection的子接口。
2.用arraylist实例化list接口
//创建一个可变长度的数组
List list1 =new ArrayList();
//添加元素。
list1.add(1); //Interger类型
list1.add("abc");
list1.add(new demo1());
//通过指定位置获取元素
Object O = list1.get(1);
System.out.println(O);
Object demo1 =list1.get(2);
System.out.println(demo1);
//泛型,指定存放类型Integer,String,Person
List<Integer> intlist =new ArrayList<Integer>(); //int可变长度数组
//在list最前面,放置一个元素
intlist.add(0,123); //可重复
//获取某个元素的位置信息
int index = intlist.indexOf(123); //获取123的位置信息并返回int形变量
System.out.println(index);
Set集合
Hashset:存储无序的,唯一的对象
遍历方法需要借助interator中的方法进行
在类中判断类中重复重写
public boolean equals(Object obj)
// obj this 判断
if(obj == this)
return true;
if(obj == null)
return false;
People person = (People)obj;
if(person.getName().equals(this.getName())&&person.getAge() ==this.getAge())
return true;
return false;
@Override
public int hashCode()
// TODO Auto-generated method stub
return age*12;
Set set1 =new HashSet<>();
set1.add(1); //Integer类型
set1.add(“abc”);
set1.add(new demo2());
set1.add(1); //再次添加1的时候被set容器识别,此时set容器的长度为3
set1.add(new demo2()); //此时set容器的长度为4
Set<People> setpeople = new HashSet<People>();
People people1 = new People("张三",20);
People people2 = new People("张三",20);
People people3 = new People("张三",22);
//需要在peopleset容器中自动识别重复的人 (信息相同)
setpeople.add(people1);
setpeople.add(people2);
setpeople.add(people3);
//需要重写实体类的equals方法和hashcode方法
System.out.println(setpeople.size());
//删除元素 先获取再删除(不用迭代器)
setpeople.remove(people2);
System.out.println(setpeople.size());
迭代器:专门是实现集合的遍历
List容器用迭代器实现
①for(int i =0;i <=peopleList.size();i++)
People textforpeople = peopleList.get(i);
for(;iterator.hasNext()😉
People p =iterator.next();
② while(iterator.hasNext())
People p =iterator.next();
③ //迭代器的使用
//增强for循环,需要提前指定容器类型
for (People people:peopleList)
System.out.println(people.getName());
System.out.println(people.getAge());
Set容器用迭代器实现因为set是无序的所以不能使用get方法获取下标进行迭代
①获取迭代器 iterator iter = peopleset.iterator();
//for while
For(people tmpp:personset)
System.out.print(tmpp.getName()+temp.getAge())
操作集合的工具类collections
因为是静态类,使用时直接Collections.方法名 进行调用
Reverse:反转元素的位置
Shuffle: 随机排序打乱原来元素顺序
*如果list中的元素是对象,如何进行排序??
//sort排序:取首字母进行排序
//交换 swap collections.swap(list,1,2) //对list的1,2进行交换
*如果list中的元素是对象,如何进行排序??
排序时,不支持类排序的方式
Arraylist和list之间的转换
把数组转化为arraylist
①空容器(ArrayList),遍历数组并赋值
把arraylist转化为数组
List.toarray();
以上是关于2020-8-17的主要内容,如果未能解决你的问题,请参考以下文章
张三 李四 王五 50 60 45 张三 50 李四 60 王五 45 让第一、二列等于第一、二行的相关内容 谢谢