本文共 2644 字,大约阅读时间需要 8 分钟。
starUML 是一款功能强大的UML图工具,安装过程相对简单。解压后即可运行,无需复杂配置。打开工具后,点击菜单栏的Model,选择UseCaseDiagram即可创建用例图。通过拖拽UseCase和Subject,结合右键绘制元素之间的关系,就能快速生成高质量的用例图。
在Eclipse中创建一个新的Java项目,右键新建包com.chendongli.list
。以下是List集合的常用操作示例:
Listlist = new ArrayList<>();list.add("aa");list.add("bb");
for (String s : list) { System.out.println(s);}
list.set(1, "老六");
Object obj = list.remove(1);System.out.println(obj + "aaa");
list.remove(index)
,避免在循环中直接修改集合。通过设置初始容量和增长因子,可以显著提升性能。例如:
ArrayList list = new ArrayList<>(100);// 初始化容量为100,增长因子为0.5
使用List::contains
方法进行去重操作:
ArrayListlist = new ArrayList<>();list.add("aa");list.add("bb");list.add("bb");list.add("dd");list.add("aa");ArrayList uniqueList = new ArrayList<>();for (String s : list) { if (!uniqueList.contains(s)) { uniqueList.add(s); }}
removeLast()
方法。remove()
方法。List集合的底层采用动态数组存储,支持任意元素类型,且支持定容量和扩容。
增长因子决定了集合扩容时的效率。常见的增长因子值有0.5、1.5等。
List集合的去重机制基于equals()
方法。如果自定义对象没有重写equals()
,则默认比较对象引用是否相同。
Listlist = new ArrayList<>();list.add("1");list.add("4");list.add("6");list.add("9");list.add("11");list.add("8");List filteredList = new ArrayList<>();for (String s : list) { if (Integer.parseInt(s) % 2 == 1) { list.remove(s); }}
// 遍历方式一:for循环for (Object obj : list) { System.out.println(obj);}// 遍历方式二:索引循环for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i));}// 遍历方式三:迭代器Iterator it = list.iterator();while (it.hasNext()) { System.out.println(it.next());}
public class QueueDemo { private LinkedList queue = new LinkedList(); public void enqueue(Object obj) { queue.add(obj); } public Object dequeue() { return queue.remove(); }}
public class StackDemo { private LinkedList stack = new LinkedList(); public void push(Object obj) { stack.add(obj); } public Object pop() { return stack.removeLast(); }}
通过设置初始容量,可以减少动态数组的扩容次数,提升性能。
增长因子选择合适值(如0.5或1.5)可以平衡内存使用和性能。
List集合的性能优化主要体现在以下几个方面:
默认的contains()
方法使用的是对象的引用比较。如果自定义对象没有重写equals()
,则去重操作会失败。
避免在遍历集合时进行增删改查操作,否则会抛出ConcurrentModificationException
异常。
List集合是Java中最常用的集合类之一,理解其内部机制和使用方法是每个开发人员的必修课。在实际应用中,需要根据具体需求选择合适的集合类型和操作方式,以达到最佳性能和代码简洁性。
转载地址:http://ikufk.baihongyu.com/