1.raylistԴ??
2.ArrayList 和LinkedList各自的特点是什么?
3.java,å
³äºå©ç¨åå°èªå¨è®¾ç½®List<T>ä¸Tçç±»å
4.java <T>TåTçåºå«
raylistԴ??
import java.util.ArrayList;import java.util.Collections;
import java.util.Scanner;
public class GradeList {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Scanner in = new Scanner(System.in);
int grade;
System.out.print("请输入成绩,以空格隔开,键入-1结束:");
while ((grade = in.nextInt())!=-1){
if(grade>=0&&grade<=)
list.add(grade);
}
System.out.println("实际统计的人数为:"+list.size()+"\n实际统计的成绩为:"+list);
System.out.println("平均分:"+getAvg(list));
System.out.println("最高分:"+getMax(list));
System.out.println("最低分:"+getMin(list));
System.out.println("不及格:"+getBad(list));
}
public static double getAvg(ArrayList<Integer> list){
int sum = 0;
for (int i = 0; i < list.size(); i++) {
sum += list.get(i);
}
return (double)sum/list.size();
}
public static int getMax(ArrayList<Integer> list){
Collections.sort(list);
return list.get(list.size()-1);
}
public static int getMin(ArrayList<Integer> list){
Collections.sort(list);
return list.get(0);
}
public static ArrayList getBad(ArrayList<Integer> list){
Collections.sort(list);
ArrayList<Integer> badGradeList = new ArrayList<Integer>();
for (int index=0; index < list.size(); index++) {
int grade = list.get(index);
if (grade<)
badGradeList.add(grade);
}
return badGradeList;
}
}
main方法
求平均、最高、最低、不及格方法
ArrayList 和LinkedList各自的特点是什么?
1、ArrayList:动态数组。用MSDN中的燕窝没有朔源码好吗说法,就是Array的复杂版本,它提供了动态的增加和减少元素,实现了ICollection和IList接口,灵活的设置数组的大小等好处。
2、LinkedList:双向列表。
列表中的科技开源源码每个节点都包含了对前一个和后一个元素的引用。
List 接口的大小可变数组的实现,位于API文档的java.util.ArrayList<E>。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的兔子铃铛源码下载数组的大小。
size、isEmpty、get、set、iterator 和 listIterator 操作都以固定时间运行。add 操作以分摊的http代理源码分析固定时间 运行,也就是说,添加 n 个元素需要 O(n) 时间。其他所有操作都以线性时间运行(大体上讲)。
与用于 LinkedList 实现的常数因子相比,此实现的常数因子较低。
每个 ArrayList 实例都有一个容量。linux中源码安装该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 ArrayList 中不断添加元素,其容量也自动增长。并未指定增长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。
扩展资料
常用方法:
1、boolean add(E e):将指定的元素添加到此列表的尾部。
2、void add(int index, E element):将指定的元素插入此列表中的指定位置。
3、boolean addAll(Collection<? extends E> c):按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部。
4、boolean addAll(int index, Collection<? extends E> c):从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
5、void clear():移除此列表中的所有元素。
6、Object clone():返回此 ArrayList 实例的浅表副本。
百度百科-arraylist
java,å ³äºå©ç¨åå°èªå¨è®¾ç½®List<T>ä¸Tçç±»å
æ³åå¯ä»¥ç¨"<T>"代表ï¼ä»»æç±»åçã
解éï¼ â<T>âæ¯æ³åçé»è®¤å¼ï¼å¯ä»¥è¢«ä»»æç±»åæ代æ¿ï¼å¦ï¼
List<String> list = new ArayList<String>()ï¼è¿ä¸ªå°±å®ä¹äºä¸ä¸ªStringç±»åçâæ³åâéåï¼é£ä¹Tçç±»åå°±æ¯å符串ã
List<T> list = new ArayList<T>()ï¼
å¯ä»¥èµå¼ç»listï¼list.add("StringBatch");
å¯ä»¥è·åå°listçå¼ï¼list.get(0),ç»æå°±æ¯âStringBatchâï¼
è¿ä¸ªæ¶åTçç±»åä¹æ¯Stringãä¹å°±æ¯è¯´Tæ¯å¨æçï¼å¯ä»¥è¢«ä»»ææå®ç±»åã
java <T>TåTçåºå«
å¨ä½ è¿æ®µä»£ç éé¢æ¯æ²¡æåºå«çï¼å®é ä¸å¦ææ¯<T>çè¯ï¼æ¯å¯ä»¥ä¼ åæ°classçï¼ä¹å°±æ¯è¯´ï¼å¦æè¯´ä½ å£°æTest<T>ç对象çæ¶ågetT2çè¿åç±»å就已ç»ç¡®å®äºï¼ä½æ¯getT3çè¿åå¼çç±»åå´å¯ä»¥æ¯ä½ ä¼ è¿æ¥çåæ°classçç±»åï¼ä¹å°±æ¯è¯´è¿ä¸ªæ¹æ³çè¿åå¼çç±»åå¯ä»¥å¨ä½ è°ç¨æ¹æ³æ¶åè¿è¡è®¾å®