遍历集合的方法

迭代器遍历

List<String> list = new Arraylist<String>();
list.add("a");
Iterator iter = list.iterator();
while(iterator.hasNext()) {
    String str = iter.next();
}

索引遍历

for (int i = 0; i <list.size(); i++) {
    System.out.println(list.get(i));
}

ArrayList和LinkedList的区别

ArrayList的底层是数组实现的,数组的每个单位地址是连续的,所以特点是查询、修改快,但是插入和删除元素时候会修改元素后面的所有元素,所以插入、删除慢

ArrayList的线程安全方案List list = Collections.synchornizedList(new ArrayList())

LinkedList的底层是链表实现的,链表的结构地址不连续,只是每个地址存有上链和下链的地址,所以增加、删除链的时候只会修改上链和下链记录的地址,不会修改全身,所以链表结构增加、删除快,但是因为地址不连续,所以查询、修改慢

LinkedList特有的方法

  • 增加、删除首位元素List.addFirst()、List.removeFirst()、List.addLast()、List.removeLast()
  • 查询首位元素List.getLast()、List.getFirst()

HashSet

  • Set里面存储的元素不能重复,没有索引,存取顺序不一致。
  • 遍历Set的方法,使用for each 循环,或迭代器遍历方式,但是因为没有索引,所以不能通过访问索引遍历
  • 能使用迭代器遍历的容器都能用for each 遍历
for (int element:set)
    System.out.println(element);

LinkdHashSet和HashSet的区别

  • 两者都是Set,都存放不重复的一组数据
  • LinkdHashSet底层是两边实现,所以可以保存存入数据时候的顺序,而HashSet是无序的

遍历map的方法

HashMap<> map = new HashMap<>();
Iterator iter = map.keySet().iterator() //Set()方法返回map中所有的key
原文地址:https://www.cnblogs.com/zhz-8919/p/10696042.html