Java集合框架体系结构
默认的一个数组 8
Iterator迭代器
collection:无序、可重复的一组数据
List:有序、可重复
List:ArrayList:底层是可变数组(线性表),遍历元素更快,改变值也就更快
LinkedList:底层是双向链表(在有他自己本身之外再加上他下一个),插入、删除更快
Set:无序、不可重复
collection、List、Set都是接口,全部都位于java.util包里
Map:实现一一对应(Entry)
HashMap
在实现对抽象类和接口实例化的时候,没有类名,但实现了和类一样的功能
私有静态类 node
News:
package cn.kgc.kb09;/*** @Author: ChaoKeAiMuZhi* @Date: 2020/7/28 14:16* @Description:id、名称、创建者**/
public class News implements Comparable<News>{private int newsId;private String title;private String creator;@Override//给后面collection的sort使用的public int compareTo(News o) {if(o instanceof News){News obj=(News)o;//自定义比较规则//return wsId;//降序,当前的在后就叫降序return wsId;//升序,当前的在前就叫升序}return 0;}public int getNewsId() {return newsId;}public void setNewsId(int newsId) {wsId = newsId;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getCreator() {return creator;}public void setCreator(String creator) {ator = creator;}public News(int newsId, String title, String creator) {wsId = newsId;this.title = ator = creator;}@Overridepublic String toString() {return "News{" +"newsId=" + newsId +", title='" + title + ''' +", creator='" + creator + ''' +'}';}
}
TestNews:
package cn.kgc.kb09;import java.util.ArrayList;
import java.util.Comparator;
import java.util.Iterator;/*** @Author: ChaoKeAiMuZhi* @Date: 2020/7/28 14:18* @Description:假定用数组来存储,元素个数不确定,需要用集合**/
public class TestNews {//News[] allNews=new News[10];//一旦超过了,就需要数组扩容//一旦过少,就需要截去多余的部分public static void main(String[] args) {ArrayList<News> newsList = new ArrayList<>();News news1=new News(1,"李小璐与PGOne不得不说的故事","sam");News news2=new News(2,"川建国同志的卧底生涯","sam");News news3=new News(3,"克林顿在白宫中对莱文斯基唱诗","sam");News news4=new News(4,"kb09就业平均薪资达到2W","sam");
/* newsList.add(news);//在集合中增加元素System.out.println(newsList.size());ve(news);//在集合中删除元素System.out.println(newsList.size());newsList.add(news);System.out.println(newsList.size());System.out.(0));//根据下标查找元素//newsList.set(0,1);//根据下标修改元素*/newsList.add(news1);newsList.add(news2);newsList.add(news3);newsList.add(news4);System.out.println(newsList.size());//遍历的3种方式//fori/*for (int i = 0; i < newsList.size(); i++) {System.out.(i));}*///增强for遍历/*int i=1;for(Object obj:newsList){System.out.println("第"+i+++"条"+obj);}*///原来有多少个往后面加一个可以,但不能跳着来,正常是在前面插入的时候使用//newsList.add(1,news3);现有的元素向后移动一位//指定插入到已插入元素的位置,则后面的所有元素后移newsList.add(4,news3);ains("abc")){ve("abc");//不存在的情况,并没有报错,所以一般与contains配合使用}ve(1);//往往与indexof一起使用//根据对象来找索引,也不是很常用int i = newsList.indexOf(news3);//removeAll是和一个别的集合比较,如果包含就全部抹掉相同的元素//subList取子集合,左闭右开,如果2~3 就只拿2 返回一个子集合//toArray把底层的数组扔回来 toArray(Object[])指定扔到那个数组里//toString比较有用!//clear清空//迭代器遍历/*Iterator itr=newsList.iterator();while(itr.hasNext()){System.out.()+"!!!");}*/System.out.String());newsList.sort(new Comparator<News>() {@Overridepublic int compare(News o1, News o2) {if(o1 instanceof News && o2 instanceof News){News n1=(News) o1;News n2=(News) o2;NewsId()-n2.getNewsId();//如果n1比n2大,就会倒序排列}return 0;}});System.out.println(newsList);}
}
TestLink:
package cn.kgc.kb09;import java.util.*;/*** @Author: ChaoKeAiMuZhi* @Date: 2020/7/28 15:53* @Description:**/
public class TestLink {public static void main(String[] args) {LinkedList list=new LinkedList();News news1=new News(1,"李小璐与PGOne不得不说的故事","sam");News news2=new News(2,"川建国同志的卧底生涯","sam");News news3=new News(3,"克林顿在白宫中对莱文斯基唱诗","sam");News news4=new News(4,"kb09就业平均薪资达到2W","sam");list.add(news1);list.addLast(news2);list.addFirst(news3);list.add(news4);ve();//等同于removeFirst();list.element();//获取它的第一个元素getFirst();list.offer(1);//等同于add(1);list.peek();//等同于getFirst(); 如果当前为空就返回空list.poll();//弹出首元素,相当于removeFirst();list.pop();//等同于removeFirstlist.push("abc");//等同于addFirst();for (Object o : list) {System.out.println(o);}//实现了从LinkedList转成ArrayListArrayList arr=new ArrayList();arr.addAll(list);}
}
TestSet:
package cn.kgc.kb09;import java.util.HashSet;
import java.util.Iterator;/*** @Author: ChaoKeAiMuZhi* @Date: 2020/7/28 16:26* @Description:**/
public class TestSet {public static void main(String[] args) {HashSet set=new HashSet();set.add(1);set.add("abc");set.add("hello");set.add(1);set.add("abc");set.add(2);System.out.println(set.size());ains("abc")){ve("abc");}//set一般来说只用来做查看,去重,addAll把另外一个list拿进来,把重复数据扔掉了//不满足输入顺序的就叫做无序,默认是按照hashcode排序的/*for (Object o : set) {System.out.println(o);}*/Iterator itr = set.iterator();while(itr.hasNext()){System.out.());}}
}
TestTree:
package cn.kgc.kb09;import java.util.TreeSet;/*** @Author: ChaoKeAiMuZhi* @Date: 2020/7/28 17:07* @Description:**/
public class TestTree {public static void main(String[] args) {TreeSet set=new TreeSet();set.add(4);set.add(3);set.add(2);set.add(1);System.out.println(set);for (int i = 0; i < set.size(); i++) {}}
}
本文发布于:2024-02-01 20:44:08,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170679144939312.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |