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 让第一、二列等于第一、二行的相关内容 谢谢

适用于1年级外键关联id为1的张三, 查询出张三

SQL rownumber partition 取范围数据进行分组

sql查询问题,想找出开始时间和结束时间

PHP 中的回调函数

数据库问题:将张三的年龄修改为22岁