자바 모듈 Tuple 사용 실례

6610 단어 자바
원본 주소:http://50vip.com/35.html
1. 왜 원조 tuple 을 사용 합 니까?
    원본 그룹 은 목록 list 와 마찬가지 로 데이터 저장 에 사용 할 수 있 으 며 여러 데 이 터 를 포함 할 수 있 습 니 다.그러나 목록 과 다른 것 은 목록 은 같은 데이터 형식 만 저장 할 수 있 고 원본 그룹 은 다 르 기 때문에 서로 다른 데이터 형식 을 저장 할 수 있 습 니 다. 예 를 들 어 int, string, list 등 을 동시에 저장 하고 수요 에 따라 무한 확장 할 수 있 습 니 다.
    예 를 들 어 웹 응용 에서 자주 발생 하 는 문 제 는 바로 데이터 페이지 문제 이다. 페이지 를 조회 하려 면 몇 가지 정 보 를 포함해 야 한다. 현재 페이지 수, 페이지 크기.조회 결 과 는 현재 페이지 의 데이터 기록 으로 되 돌아 갑 니 다. 그러나 프론트 데스크 에 현재 페이지, 페이지 크기, 총 페이지 수 등 정 보 를 표시 하려 면 반드시 다른 정보 가 있어 야 합 니 다. 바로 데이터 가 총 수 를 기록 한 다음 에 위의 정보 에 따라 총 페이지 수 등 정 보 를 계산 해 야 합 니 다.이 때 한 페이지 의 정 보 를 조회 할 때 두 개의 데이터 형식 을 되 돌려 야 합 니 다. 하 나 는 list (현재 의 데이터 기록) 이 고 하 나 는 int (기록 총수) 입 니 다.물론 두 가지 방법, 두 번 의 데이터베이스 연결 에서 이 두 가지 값 을 충분히 얻 을 수 있다.사실 list 를 조회 할 때 sql 조 회 를 통 해 총 기록 수 를 얻 었 습 니 다. 만약 에 하나의 방법 을 다시 열 면 데이터 베이스 연결 을 통 해 총 기록 수 를 조회 할 수 있 습 니 다. 쓸데없는 행동, 시간 낭비, 코드 낭비, 생명 낭비 가 불가피 합 니 다.말 이 무 겁 습 니 다 ~ 이런 상황 에서 우 리 는 이원 조 를 이용 하여 한 번 의 데이터 베이스 연결 에서 총 기록 수, 현재 페이지 기록 을 얻 고 그 안에 저장 할 수 있 습 니 다. 간단명료 합 니 다!
2. 소스 코드 인 스 턴 스
    이원 그룹:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17/** <p>Title: TwoTuple</p>   * <p>Description: , </p>   * @author [email protected]   * @site http://wzwahl36.net   * @version 2012-3-21 11:15:03   * @param <A>   * @param <B>   */ public class TwoTuple<A, B> {      public final A first;      public final B second;            public TwoTuple(A a, B b) {          this .first = a;          this .second = b;      } }    3 원 그룹 으로 확장 (이것 을 누 르 면 임의로 확장 할 수 있 습 니 다)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18/**   * <p>Title: ThreeTuple</p>   * <p>Description: , </p>   * @author [email protected]   * @site http://wzwahl36.net   * @version 2012-3-21 11:15:50   * @param <A>   * @param <B>   * @param <C>   */ public class ThreeTuple<A, B, C> extends TwoTuple<A, B> {      public final C third;            public ThreeTuple(A a, B b, C c) {          super (a, b);          this .third = c;      } }    모듈 작업 도구 클래스, 테스트 클래스 (필요 에 따라 사용자 정의 가능)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45import java.util.ArrayList; import java.util.List; import com.bluesea.bean.GoodsBean; /**   * <p>Title: TupleUtil</p>   * <p>Description:   * , , ,   * (List ), (Integer ),   * action   * , ,   * </p>   * @author [email protected]   * @site http://wzwahl36.net   * @version 2012-3-21 09:59:39   * @param <A>   * @param <B>   */ public class TupleUtil {            public static <A, B> TwoTuple<A, B> tuple(A a, B b) {          return new TwoTuple<A, B>(a, b);      }            public static <A, B, C> ThreeTuple<A, B, C> tuple(A a, B b, C c) {          return new ThreeTuple<A, B, C>(a, b, c);      }      //      public static void main(String[] args) {          List<GoodsBean> goodsBeans = new ArrayList<GoodsBean>();          for ( int i = 1 ; i < 26 ; i++) {              GoodsBean goodsBean = new GoodsBean();              goodsBean.setGoodsId(i);              goodsBeans.add(goodsBean);          }          Integer totalProperty = 47 ; //      TupleUtil<List<GoodsBean>, Integer> tupleUtil = new TupleUtil<List<GoodsBean>, Integer>(goodsBeans, totalProperty);          TwoTuple<List<GoodsBean>, Integer> twoTuple = TupleUtil.tuple(goodsBeans, totalProperty);          List<GoodsBean> list = twoTuple.first;          System.out.println(list);          System.out.println(twoTuple.second);      } }  

좋은 웹페이지 즐겨찾기