集合是一种对象,用于存储、检索、传输数据。由一组类和接口组成。

特点:类型可以不同,长度可变,空间不固定。

对象的存储类型:
Set:一般情况下没有顺序,不能重复。
List:有序,有重复对象,实现类通常支持null元素。
Map:键值对,键、值不能重复,单向一对一关系。

ArrayList:以数组方式实现,连续空间,查询效率高。
LinkedList:以链表方式实现,增、删、改效率高。

泛型:允许在定义类,接口时指定类型形式参数。保证在集合中的元素类型安全。

public class ArrayListDemo{
 public static void main(String [] args){
 List<Integer> li = new ArrayList<Integer>();
 //添加
 li.add(5);
 li.add(new Integer(4));
 // li.add("six");
 //删除
 li.remove(1);//下标表示
 //获取元素
 for(int i = 0 ; i < li.size() ; i++){
 System.out.println(i + " = " + li.get(i));
 }
 }
}

代码中的"<Integer>"就表示泛型,编译时要把li.add("six")注释掉

工具类:Collections、Arrays这两个类提供了包装器的实现、数据结构算法和数组相关的应用。提供了大量的静态方法,在操作集合和数组时,可以大大减轻程序员编码量、提升开发效率、提高代码性能。

 

Swing组件是在AWT基础上开发的新型GUI组件。

MVC架构,将表示层分为3个分类的部分:模型(存)、视图(显)、控制器(处理)。

Swing视图由容器和组件组成,容器是一种设计用来放置其他组件的特殊类型的组件。

组件:内容、外观显示、行为。

重量级组件:Jframe(窗体)、Jdialog(对话框)、Jwindow(窗口)、Japplet(小程序)
轻量级组件:Jpanel(面板)、JSplitPane(分隔窗格)、JScrollPane(滚动窗格)、JTabbledPane(标签窗格)、JRootPane(工具条)以及一些专用的容器。

布局管理器:
流式布局管理器(从左到右),JPanel组件默认采用这个布局管理器
边框布局管理器(东南西北中),JFrame默认采用这个布局管理器
网格布局管理器(行和列)
盒式布局管理器(垂直或水平)
卡片布局管理器、网格包布局管理器、层叠布局管理器

JMenuBar菜单条、JMenu菜单、 Jmenu Item子菜单

AWT Swing
粗糙不美观 更方便、丰富的用户界面元素集合
平台不一致 对底层平台的依赖更少,和平台有关的bug就越少
运行效率较低,不适合复杂程序 给用户不一样的平台一样的感觉
开发效率较低 没有对等组件

import javax.swing.JFrame;
public class Login extends JFrame {
 public Login(){
 //标题
 setTitle("登录");
 //窗体大小
 setSize(200,300);
 //窗体关闭
 setDefaultCloseOperation(EXIT_ON_CLOSE);
 //窗体居中
 setLocationRelativeTo(null);
 //窗体可见
 setVisible(true);
 }
 public static void main(String [] args){
 //实例化一个对象
 new Login();
 }
}